.net - Swagger 具有相同名称的不同 API 版本,相同的路由不起作用
问题描述
我们有两个名称相同但 API 版本不同的 REST API。两个 API 有相同的路由。此外,这两个 API 在路由中都没有 API 版本。
API #1
[ApiVersion("V1")]
[Produces("application/json")]
[Route("application/{applicationName}")]
public class Controller : BaseClass
{
.
.
.
[HttpPost("connections/generateUri", Name = "GenerateConnectionUri")]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ConnectionUriResponse))]
public async Task<IActionResult> GenerateConnectionUriAsync()
{
}
}
API #2
[ApiVersion("V2")]
[Produces("application/json")]
[Route("application/{applicationName}")]
public class ControllerV2 : BaseClass
{
.
.
.
[HttpPost("connections/generateUri", Name = "GenerateConnectionUriV2")]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(ConnectionUriResponseV2))]
public async Task<IActionResult> GenerateConnectionUriAsync()
{
}
}
在生成 swagger.json 时,我们遇到了上述两个 API 的冲突。似乎 swagger 的生成依赖于路由,如果我们更改第二个 API 的路由,事情就会正常工作。
我们如何解决这个问题以在 swagger.json 中获取以上两个具有不同 API 版本的同名 API?TIA。
解决方案
推荐阅读
- c# - 为什么我收到错误“ObjectPoolingManager.Instance”由于其保护级别而无法访问?
- python - 张量流模型的输入数据结构
- android - Android Kotlin 刷新文本视图
- typescript - 带有反应的验证功能
- java - 我调用没有对象的方法为什么它会运行?
- android - 将 Firebase 数据库 ChildEventListener 与 ViewModel 一起使用的正确方法是什么?
- javascript - 反应状态:未捕获的类型错误:无法读取未定义的属性“值”
- unity3d - Unity Hololens 2:将屏幕点转换为世界点以进行对象检测的问题
- ios - 如何从IOS中的二进制文件中获取函数/符号信息
- scala - 是否可以将字符串注册为 UDF?