我是Mvc新手,尝试编写restful api,我使用Web api类型的应用程序,并尝试创建版本控制,最后我想要像 api/v1/values/get、api/v2/values/get 这样的链接类型。我尝试在控制器文件夹中创建文件夹 v1 和 v2 ,并在那里创建名为 ValuesController 的控制器,但我的请求不起作用。我收到 HTTP 404.0 - 未找到。我如何配置路由或做一些事情来解决这个问题?
您可以使用属性路由来实现这种版本控制。对于您的示例,它看起来类似于下面的代码片段
[RoutePrefix("api/v1/values")]
public class ValuesController : ApiController
{
public object Get(int id) { ... }
}
[RoutePrefix("api/v2/values")]
public class NewValuesController : ApiController
{
public object Get(int id) { ... }
}
Edit
如果您有现有项目,请不要忘记启用属性路由。你的WebApi配置应包含以下片段:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
您可以删除映射HttpRoute如果您不想使用基于约定的配置,请选择部分。
您还应该确保您的全局.asax包含以下内容:
protected void Application_Start()
{
// Pass a delegate to the Configure method.
GlobalConfiguration.Configure(WebApiConfig.Register);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)