我有两个ApiControllers
[ApiVersion( "1" )]
[RoutePrefix( "v{version:apiVersion}/account" )]
public class LoginController1 : BaseController
和
[ApiVersion( "2" )]
[RoutePrefix( "v{version:apiVersion}/account" )]
public class LoginController2 : BaseController
Swagger不会显示登录v2,直到我将RoutePrefix
改为"v2/account"
而不是{version:apiVersion}
,或者在V1控制器中更改相同也会产生相同的效果。
这意味着它们中的一个应该是非模式前缀,我使用的是ASP.NET Api (不是.NET核心)和Swagger-Net版本8.3.23.1103。
发布于 2020-03-25 18:29:29
这里可能有几个问题。
控制器命名约定要求有Controller
后缀--确切地说。这可能意味着LoginController1和LoginController2会有问题,但Login1Controller和Login2Controller应该可以按预期工作。
你在使用API Versioning API Explorer扩展吗?您将希望/需要该包支持Swagger/OpenAPI文档生成器中的API版本分组。
由于您是按URL段进行版本控制的,因此您可能希望在URL路径中自动替换相应的API版本。这可以通过以下配置来实现:
configuration.AddVersionedApiExplorer(options.SubstituteApiVersionInUrl = true);
我希望这能有所帮助。
https://stackoverflow.com/questions/60835118
复制相似问题