Cas*_* TL 4 swagger swashbuckle asp.net-core asp.net-core-2.1
我的情况比较简单。我有一个非常大的 .NET Core 2.1 MVC/WebApi,分为几个区域,代表我系统的不同模块。我使用 Swagger (SwashBuckle) 并且效果很好。我的路由就像{area}/{controller}/{action}.
在 Swagger UI 中,每个动作都被分组到控制器中(标准行为)。我的控制器和操作列表变得非常庞大且难以掌握。因此,如果 Swagger 可以将我的控制器分成不同的区域,我会很高兴!使折叠area x和每个控制器成为可能area x。
我真的很想念这个功能或自己实现它的方法!任何想法表示赞赏!
更新
我试过用标签注释动作。
这给了我:
- Area 1
- MethodFromControllerA()
- MethodFromControllerB()
- Area 2
- MethodFromControllerC()
- MethodFromControllerD()
Run Code Online (Sandbox Code Playgroud)
我想要的是:
- Area 1
- ControllerA
- MethodFromControllerA()
- ControllerB
- MethodFromControllerB()
- Area 2
- ControllerC
- MethodFromControllerC()
- ControllerD
- MethodFromControllerD()
Run Code Online (Sandbox Code Playgroud)
更新 2
另一种选择是为我的每个领域制定几个规范。就像每个区域都有不同的 Swagger UI。可能的?
您首先需要安装注释并在启动时启用它们:
services.AddSwaggerGen(c =>
{
c.EnableAnnotations();
});
Run Code Online (Sandbox Code Playgroud)
然后你需要将你的“区域”作为标签添加到每个动作中。
[SwaggerOperation(
Tags = new[] { "Area51" }
)]
Run Code Online (Sandbox Code Playgroud)
当您打开 swagger ui 时,它现在应该自动按标签分组(默认情况下,控制器名称是所选标签)。
使用现有的 swagger ui 生成器,目前无法开箱即用地对端点进行进一步嵌套分组。
| 归档时间: |
|
| 查看次数: |
7922 次 |
| 最近记录: |