【发布时间】:2019-11-19 15:34:11
【问题描述】:
我正在创建一个 API,需要在其中完成版本控制。我正在使用包 Microsoft.AspNetCore.Mvc.Versioning 3.1.3
我的StartUp.cs如下
在配置服务中
services.AddApiVersioning(o => {
o.ReportApiVersions = true;
o.AssumeDefaultVersionWhenUnspecified = true;
o.DefaultApiVersion = new ApiVersion(1, 0);
});
services.AddMvc(options => options.EnableEndpointRouting = false).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
我想要完成版本控制的 2 个控制器如下
namespace JWTWithRefresh.Areas.V1.CMS
{
[AllowAnonymous]
[ApiVersion("1.0")]
[Route("api/[controller]/[action]")]
public class AppController : Controller
{
public IActionResult GetApp()
{
return Ok("This is from API V1");
}
}
}
另一个控制器如下
namespace JWTWithRefresh.Areas.V2.CMS
{
[AllowAnonymous]
[ApiVersion("2.0")]
[Route("api/[controller]/[action]")]
public class AppController : Controller
{
public IActionResult GetApp()
{
return Ok("This is from API V2");
}
}
}
我拨打电话时得到的响应如下
端点 = https://localhost:5001/api/App/GetApp?api-version=1.0
响应 =
{
"error": {
"code": "UnsupportedApiVersion",
"message": "The HTTP resource that matches the request URI 'https://localhost:5001/api/App/GetApp' is not supported.",
"innerError": null
}
}
如果有人遇到过同样的问题,请指导我解决此问题。
谢谢
【问题讨论】:
-
看看这里,看看这是否解决了它:github.com/Microsoft/aspnet-api-versioning/issues/437
-
感谢您的中肯。解决了我的问题。
-
标记为已回答
标签: api asp.net-core asp.net-core-2.0 asp.net-core-webapi