Как реализовать. NET WebAPI с маршрутом «контроллер? Action¶meters»? - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь реализовать определенный c HTTP-интерфейс (HTTP-интерфейс SAP Content Server) с. NET Стандартный WebAPI, который требует, чтобы все маршруты были в форме:

http://server: порт / somepath / controller? Action¶meter1 = value1¶meter2 = value2 ...

Пример:

GET

http://www.google.com/myapi/api?getStuff&stuffId=1&otherParameter=2

POST, PUT

http://www.google.com/myapi/api?putStuff&stuffId=1&otherParameter=2

Можно ли вообще сделать это, задав c маршрутизацию с действием после знака вопроса и параметров после?

Спецификация интерфейса: https://help.sap.com/doc/b743f868cdf249cfb829a5a121cc9436/7.0/en-US/SAPHTTPInterfaceOct.pdf

1 Ответ

0 голосов
/ 23 января 2020

Это должно быть возможно путем сопоставления ваших маршрутов :

routes.MapHttpRoute(
    name: "ActionApi",
    routeTemplate: "api/{controller}?{action}&{id}&{parameter1}",
    defaults: new { id = RouteParameter.Optional }
);

Параметры запроса могут быть добавлены в действие вашего контроллера:

public HttpResponseMessage Get(int id, string parameter)
{
   //...
}
...