Swagger 3中如何按区域分隔控制器?

Leo*_*eca 3 c# swagger asp.net-core

我正在集成 api 中实现 Swagger,在这种情况下,有必要按区域分离这些服务以解决项目组织问题,但我遇到以下问题,一些控制器在不同区域具有通用名称,并且当 swagger 生成文档时,甚至按区域分开,如果控制器名称相同,我想知道是否有办法也按区域分开控制器?下面是两个集成:Mercado Livre 和 Skyhub,两者都在不同的区域,但如果他们注意到它们加入的类别,因为它们具有相同的控制器名称。

https://tribofoxcombr-my.sharepoint.com/personal/leonardo_silva_tribofox_com_br/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fleonardo_silva_tribofox_com_br%2FDocuments%2FCompartilhado%2FCapturar%2EPNG&parent=%2Fpersonal%2Fleonardo_silva_tribofox_com _br%2FDocuments%2FCompartilhado&slrid=3e37b79e- F020-7000-B380-A8A0E7785D97

谢谢。

Pio*_*app 5

您可以使用:

    [ApiExplorerSettings(GroupName = "Group")] 
    public class SomethingController : Controller
    {
Run Code Online (Sandbox Code Playgroud)

并在声明中

services.AddSwaggerGen(options =>
{
    options.SwaggerDoc(version,
        new Info
        {
            Title = name,
            Version = version
        }
    );

    options.DocInclusionPredicate((_, api) => !string.IsNullOrWhiteSpace(api.GroupName));

    options.TagActionsBy(api => api.GroupName);
});
Run Code Online (Sandbox Code Playgroud)

  • 好吧,我看到你可以将其拆分为各个区域,但问题是先划分为区域,然后划分为控制器,这可能吗?还是 swagger 不支持? (2认同)