我正在创建一个API并需要对其进行版本控制。我正在使用Microsoft.AspNetCore.Mvc.Versioning 3.1.3包。
我的StartUp.cs如下所示
在ConfigureServices中:
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
}
}
如果有人遇到过同样的问题,请指导我解决这个问题。谢谢。