【发布时间】:2017-02-15 11:49:20
【问题描述】:
我正在使用Microsoft.AspNetCore.Mvc.Versioning,但我在正确设置路线时遇到了困难。我在这里关注 Hanselman 博客中的信息:http://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx
我想通过这样的 URI 访问我的 API:
http://me.com/api/v1.0/foo/bar
我的 foo 类具有正确的属性:
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
上面的工作正常,但如果我输入以下(无版本):
我在执行上述操作时得到 404(我假设是因为没有指定版本的路由设置不正确)。
我尝试将其添加到 Startup.cs 文件中:
//Add the versioning
services.AddApiVersioning(o => {
//Everytime a new version is created this must be updated to default to the latest version.
o.AssumeDefaultVersionWhenUnspecified = true;
o.DefaultApiVersion = new ApiVersion(1, 0);
});
但这也不起作用 - 所以我随后将我想要的路由添加到我的 foo 类/控制器的顶部:
[Route("api/[controller]")]
这得到了我想要的行为,我可以访问下面的所有路由:
http://me.com/api/v1.0/foo/bar
这是应该的方式吗?为什么默认版本不像 Hanselman 描述的那样工作?
【问题讨论】:
标签: c# asp.net-web-api asp.net-core versioning