小编Aks*_*sim的帖子

使用单个 C# ASP.NET Core 应用程序在不同 URL 上提供多个 Swagger UI

我需要在单个 C# ASP.NET Core 应用程序上提供多个 swagger UI。这是必需的,因为应用程序 API 包含用于 UI 和其他内容的内部“私有”API 以及可由其他应用程序和用户访问的“公共”API。

每个 Swagger 端点都应该位于其自己的 swagger UI 页面上,并具有不同的 URL 地址。我可以使用以下方法代码将现有 API 规范划分为两个不同的 json 文件和不同路径中的 json 文件Startup.cs Configure

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{ 
    ...

    app.UseSwagger()
    app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("v0.1_public/swagger.json",  "Public API v0.1");
                c.SwaggerEndpoint("v0.1_private/swagger.json", "Private API v0.1");
            });
    ...
}
Run Code Online (Sandbox Code Playgroud)

我通过过滤并添加两个 Swagger 生成器来划分规范Startup.cs

public void ConfigureServices(IServiceCollection services)
{
     ...
     services.AddSwaggerGen(c =>
        {
            c.DocumentFilter<PublicAPISwaggerFilter>();
            c.SwaggerDoc("v0.1_public", new OpenApiInfo
            {
                Title = "Public API",
                Version = "v0.1"
            });
        }); …
Run Code Online (Sandbox Code Playgroud)

c# swagger swashbuckle

9
推荐指数
1
解决办法
3745
查看次数

标签 统计

c# ×1

swagger ×1

swashbuckle ×1