Я обновляю серверную систему и связанный с ней API с. Net веб-форм, веб-сервисов и т. Д. c, чтобы воспользоваться множеством новых крутых. NET основных вещей ...
С этой целью я создал новый REST Api, включая документы Swagger, https://sam3.thinkka.com/swagger/
(указанный выше URL-адрес находится в стадии разработки, сайт разработки, поэтому, если он не работает - я ' м, вероятно, работает над этим!)
Я пытаюсь создать библиотеку классов Razor как своего рода вспомогательную вспомогательную библиотеку для создания веб-сайтов, которые потребляют указанный выше контент.
Итак, по сути, у меня три основные проекты сейчас:
- Хост API (документы Swagger выше) (В настоящее время это проект .NetFramework с различными. NET Основные дополнения - медленный процесс миграции!)
- RCL
- Проект веб-сайта (. NET Core)
Проект веб-сайта использует RCL в качестве уровня соединения для взаимодействия с хостом Api. Все это хорошо работает в коде, добавив API с помощью функции Visual Stud ios Add > Rest Client API
и документов Swagger выше, я могу успешно извлекать данные, используя такой код, как:
public class ProductModel : PageModel
{
public SamApi.Models.Product Product;
static SamApi.SamApiClient c;
public void OnGet(string id)
{
c = new SamApiClient(new ThinkkaAccess());
Product = c.ProductOperations.FindProductByvalueAsync(new ApiRequestInt32(Convert.ToInt32(id))).Result;
}
}
(обратите внимание на new ThinkkaAccess()
- это просто вызов для создания учетных данных)
Теперь у меня есть некоторые действия, которые я хочу вызывать с помощью Ajax, например AddToCart
На хосте API I я использую маршрутизацию атрибутов для всех моих ApiControllers:
<System.Web.Http.Route("webapi/addtocart/")>
<System.Web.Http.HttpPost>
Public Function AddToCart(<System.Web.Http.FromBody()> ByVal value As ApiRequest(Of AddToCartRequest)) As ShoppingBasket
Return ShoppingBasket.AddItem(value.RequestObject.ItemId, value.RequestObject.Quantity, value.RequestObject.SessionId, Website)
End Function
таким образом, я могу вызвать API напрямую следующим образом:
$.ajax({
url: "https://sam3.thinkka.com/webapi/addtocart",
data: {Some Data};
// more stuff
});
Однако я хотел бы позвонить без полного URL-адреса, ie, вместо «https://sam3.thinkka.com/webapi/addtocart», просто вызовите «/ webapi / addtocart»
Я знаю, что могу сделать это, вручную создав связку прокси-контроллеров в моем проекте RCL, которые принимают и обрабатывают эти вызовы. , но,
A: Это может быть много дублирования, особенно если мне что-то не хватает, а оно уже существует. B: Я ожидал добавления REST API для создания Proxys?
Итак .... после большого количества фона, м y простой вопрос:
Добавляет ли REST Api в Visual Studio прокси, и в этом случае это, вероятно, маршрутизация, которую я делаю неправильно, но как мне узнать, какие маршруты должны быть ?!