我有一个api控制器:
public class ExchangesController : ApiController
{
[HttpGet]
public List<ExchangesTrade> GetTrades(long tid)
{
我希望能够从/api/USD/trades.json?tid=5
我应该如何在RouteConfig中编写“routes.MapRoute”?
答案 0 :(得分:1)
首先,routes.MapRoute将为传统的MVC应用添加路由,如果要为web api添加路由,则需要在web api HttpConfiguration路由上使用MapHttpRoute添加Http路由。
在您的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