首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swagger文档中与apiVersion模式冲突的RoutePrefix

Swagger文档中与apiVersion模式冲突的RoutePrefix
EN

Stack Overflow用户
提问于 2020-03-25 00:22:16
回答 1查看 194关注 0票数 0

我有两个ApiControllers

代码语言:javascript
运行
复制
[ApiVersion( "1" )]
[RoutePrefix( "v{version:apiVersion}/account" )]
public class LoginController1 : BaseController

代码语言:javascript
运行
复制
[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。

EN

回答 1

Stack Overflow用户

发布于 2020-03-26 02:29:29

这里可能有几个问题。

控制器命名约定要求有Controller后缀--确切地说。这可能意味着LoginController1LoginController2会有问题,但Login1ControllerLogin2Controller应该可以按预期工作。

你在使用API Versioning API Explorer扩展吗?您将希望/需要该包支持Swagger/OpenAPI文档生成器中的API版本分组。

由于您是按URL段进行版本控制的,因此您可能希望在URL路径中自动替换相应的API版本。这可以通过以下配置来实现:

代码语言:javascript
运行
复制
configuration.AddVersionedApiExplorer(options.SubstituteApiVersionInUrl = true);

我希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60835118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档