【问题标题】:Web.Api routing additional parameters to routeWeb.Api 路由附加参数来路由
【发布时间】:2014-01-29 14:29:10
【问题描述】:

如何向 web api 路由添加其他参数?我想在默认路由中添加一个参数并支持对我的 api 进行版本控制,像这样:api/{version}/{controller}/{action}/{id}

我知道 {controller} 已自动映射到控制器名称和 {action} 方法名称,但 {version} 映射什么或如何映射?

附言是的,听起来很奇怪的问题,但是......

【问题讨论】:

  • 您需要实现一个新的控制器选择器。有开源实现。

标签: asp.net asp.net-mvc asp.net-web-api asp.net-web-api-routing


【解决方案1】:

在你的 WebApiConfig.cs 中,你需要有 -

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{version}/{controller}/{action}/{id}",
            defaults: new { version = 1, id = RouteParameter.Optional }
        );

当您执行值控制器 getjson 操作时 -

    public string GetJson(string id)
    {
        return "me";
    }

你得到以下输出 -

如果您想对 WebAPI 端点进行版本控制,请使用此 namespaces approach。或者,您也可以使用Http header approach。或者干脆route approach。

【讨论】:

  • 谢谢,这正是我所需要的
猜你喜欢
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 2018-04-05
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多