我需要对 .Net Core 框架中的 API 版本进行一些说明。
我的客户希望在路由器级别处理版本。喜欢
[Route("1/[controller]")]
public class SampleController : Controller
{
[HttpGet("version")]
public IActionResult GetVersion()
{
return Ok({"Message": "API Version 1"});
}
}
我使用https://www.somedomain.com/api/1/sample/version访问它
在 IIS 中,我将在默认网站下创建一个名为“api”的应用程序(此处将处理我的 URL 中的路径“api”)并在此处托管我的代码。
为了进行 API 版本控制,我可以在这里遵循的更好方法是什么。
我可以这样做吗?
[ApiVersion("1")] [Route("{version:apiVersion}/[controller]")] public class SampleController : Controller { [HttpGet("version")] public IActionResult GetVersion() { return Ok({"Message": "API Version 1"}); } [HttpGet("version"), MapToApiVersion("2" )] public IActionResult GetVersion() { return Ok({"Message": "API Version 2"}); } }
是否可以在 IIS 中的应用程序下创建应用程序。喜欢,
默认网站 -> api -> 1 -> 未提及 API 版本的代码
默认网站 -> api -> 2 -> 没有提及 API 版本的更新代码
- 或者我可以在 IIS 中将版本创建为应用程序并在每个应用程序版本下部署代码。喜欢,
默认网站 -> 1 -> 未提及 API 版本的代码
默认网站 - > 2 - > 更新代码,但未提及 API 版本
这最终会改变我不喜欢的 API URL。我仍然想使用相同的 URI。
我使用https://www.somedomain.com/api/1/sample/version访问它
请告知我可以在此处遵循的最佳方法。