C# 是否可以创建多个Swagger文档URL?

C# 是否可以创建多个Swagger文档URL?,c#,api,swagger,documentation,swashbuckle,C#,Api,Swagger,Documentation,Swashbuckle,我有一个网站正在使用Web API 2,我正在使用Swashback Swagger生成API文档并导出用于Azure API管理的JSON配置。在我的场景中,如果api可以按照Swagger文档URL({myAPI group})中定义的值进行分组,那将是理想的。然而,经过一些研究,我找不到一种方法来实现这一点 据我所知,目前为了更改Swagger导出文件,我需要在每次发生更改时重新启动环境,这在我的场景中并不理想 我试图看看是否可以从NuGet包中获得开放源代码,看看是否可以理解Swashb

我有一个网站正在使用Web API 2,我正在使用Swashback Swagger生成API文档并导出用于Azure API管理的JSON配置。在我的场景中,如果api可以按照Swagger文档URL({myAPI group})中定义的值进行分组,那将是理想的。然而,经过一些研究,我找不到一种方法来实现这一点

据我所知,目前为了更改Swagger导出文件,我需要在每次发生更改时重新启动环境,这在我的场景中并不理想


我试图看看是否可以从NuGet包中获得开放源代码,看看是否可以理解Swashback的内部工作原理。此外,我知道这可以通过使用“Swashback.AspNetCore”实现,但这不是一个选项,因为我正在将此功能集成到一个大型的.NET Framework解决方案中,这将是一项艰巨的任务。

是的,您可以做到这一点,下面是一个示例:

其源代码如下:

关键在于配置上的这一部分:

// If your API has multiple versions, use "MultipleApiVersions" instead of "SingleApiVersion".
// In this case, you must provide a lambda that tells Swagger-Net which actions should be
// included in the docs for a given API version. Like "SingleApiVersion", each call to "Version"
// returns an "Info" builder so you can provide additional metadata per API version.
//
c.MultipleApiVersions(
    (apiDesc, targetApiVersion) => targetApiVersion.Equals("default", StringComparison.InvariantCultureIgnoreCase) ||     
                                   apiDesc.Route.RouteTemplate.StartsWith(targetApiVersion, StringComparison.InvariantCultureIgnoreCase), 
                    (vc) =>
                    {
                        vc.Version("default", "Swagger_Test");
                        vc.Version("v1_0", "Swagger_Test V1_0");
                        vc.Version("v2_0", "Swagger_Test V2_0");
                    });
另一个选择是在最新的UI上利用过滤器:


为了能够将某些API组合在一起,我不想丢失API的版本控制。因此,您已经有了版本控制。。。但是你想进一步分组吗?是的,没错。你提到你知道这可以通过使用“Swashback.AspNetCore”来实现。\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu