我有一个 api 控制器:
public class ExchangesController : ApiController
{
[HttpGet]
public List<ExchangesTrade> GetTrades(long tid)
{
我希望能够从浏览器中调用它/api/USD/trades.json?tid=5
我应该如何在 RouteConfig 中编写“routes.MapRoute”?
我有一个 api 控制器:
public class ExchangesController : ApiController
{
[HttpGet]
public List<ExchangesTrade> GetTrades(long tid)
{
我希望能够从浏览器中调用它/api/USD/trades.json?tid=5
我应该如何在 RouteConfig 中编写“routes.MapRoute”?
首先,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