Rest API добавлен в Visual Studio - как использовать с Javascript - PullRequest
0 голосов
/ 09 июля 2020

Я обновляю серверную систему и связанный с ней API с. Net веб-форм, веб-сервисов и т. Д. c, чтобы воспользоваться множеством новых крутых. NET основных вещей ...

С этой целью я создал новый REST Api, включая документы Swagger, https://sam3.thinkka.com/swagger/

(указанный выше URL-адрес находится в стадии разработки, сайт разработки, поэтому, если он не работает - я ' м, вероятно, работает над этим!)

Я пытаюсь создать библиотеку классов Razor как своего рода вспомогательную вспомогательную библиотеку для создания веб-сайтов, которые потребляют указанный выше контент.

Итак, по сути, у меня три основные проекты сейчас:

  1. Хост API (документы Swagger выше) (В настоящее время это проект .NetFramework с различными. NET Основные дополнения - медленный процесс миграции!)
  2. RCL
  3. Проект веб-сайта (. 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 прокси, и в этом случае это, вероятно, маршрутизация, которую я делаю неправильно, но как мне узнать, какие маршруты должны быть ?!

...