2015-10-28 2 views
0

Я изучаю создание надежного API с использованием структуры веб-API ASP.NET.Как добавить дополнительные значения заполнитель в маршруты веб-API

Основной формат маршрут, который используется

api/{controller}/public/{category}/{id} 

Я много читал о том, как структура решает контроллеры и действия для выполнения в этих контроллерах, и чувствует себя довольно комфортно с этим.

В конечном счете, что мне нужно сделать, однако, добавить дополнительный элемент-заполнитель перед секцией контроллера, которая будет действовать как элемент маршрутизации для определения конечной точки, с которой должно выполняться действие. Ex.

api/{endpointId}/{controller}/public/{category}/{id} 

Что является самым простым способом выполнить это в рамках веб-API?

ответ

0

Вы можете либо использовать маршрутизацию атрибутов (указанную как атрибут, либо по всему классу контроллера, либо по каждому методу отдельно) или обычную маршрутизацию. Если каждый контроллер может иметь несколько возможных конечных точек, может быть сложнее достичь того, чего вы хотите с помощью маршрутизации атрибутов, хотя это все еще возможно. Если вы решите пойти на обычный маршрут (каламбур), вы можете установить, что похож на этот путь:

Адаптировано из Web API 2 docs:

public static class WebApiConfig { 
     public static void Register(HttpConfiguration config) 
     { 
      // Attribute routing. 
      config.MapHttpAttributeRoutes(); 

      // Convention-based routing. 
      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{endpointId}/{controller}/public/{category}/{id}", 
       defaults: new { endpointId = "1", controller = "DefaultController", category = "DefaultCategory" 
id = RouteParameter.Optional } 
      ); 
     } } 
+0

Спасибо! Я рассматривал только маршрутизацию API v1. Я думаю, что маршрутизация атрибутов в API 2 позволит мне получить то, что мне нужно. – user3735503

Смежные вопросы