【发布时间】:2017-05-18 14:06:20
【问题描述】:
我需要澄清一下 .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
请在此处建议我可以遵循的最佳方法。
【问题讨论】:
-
你的 api 的不同版本有不同的项目还是在同一个项目中?
-
我仍在使用 API 的第 1 版。我更喜欢有相同的项目。
标签: asp.net api iis api-versioning