2013-03-15 4 views
1

У меня есть контроллер API:как написать MapRoute mvc4

public class ExchangesController : ApiController 
{ 
    [HttpGet] 
    public List<ExchangesTrade> GetTrades(long tid) 
    { 

Я хочу, чтобы иметь возможность вызвать его из браузера, как /api/USD/trades.json?tid=5

Как я должен писать «routes.MapRoute» в моем RouteConfig?

ответ

1

Во-первых, route.MapRoute добавит маршруты для традиционного приложения MVC, если вы хотите добавить маршруты для своего веб-приложения, вам нужно добавить маршруты Http с помощью MapHttpRoute на вашем веб-маршруте HttpConfiguration.

В вашем Web API конфигурации, вы можете добавить расширение отображения путь URI, как это:

config.Formatters 
     .JsonFormatter 
     .MediaTypeMappings 
     .Add(new UriPathExtensionMapping("json", "application/json")); 

Добавить маршрут так:

config.Routes.MapHttpRoute(
     name: "ExchangesRouteWithExtensions", 
     routeTemplate: "api/USD/{action}.{ext}/{tid}", 
     defaults: new { controller = Exchanges, tid = RouteParameter.Optional } 
    ); 

Тогда доступ к вам конечную точку, как это:

api/USD/trades.json?tid=5