【问题标题】:ASP.net Core - comment specific versions in SwaggerASP.net Core - 在 Swagger 中评论特定版本
【发布时间】:2020-09-06 22:52:19
【问题描述】:

我有一个存在版本 1 到 3 的 API。我正在创建一个特定控制器的 v4,我需要标题描述(见下文“负责...的 Api”)。

有没有办法对版本进行具体描述?我想在我的新 v4 中加入“草稿”一词。

我的启动配置如下...

服务集合

...

services.AddSwaggerGen(c =>
{
    services.BuildServiceProvider().GetRequiredService<IApiVersionDescriptionProvider>();

    var dir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
    foreach (var fi in dir.EnumerateFiles("*.xml"))
    {
        c.IncludeXmlComments(fi.FullName);
    }
    c.AddSecurityDefinition("Bearer",
        new OpenApiSecurityScheme
        {
            In = ParameterLocation.Header,
            Description = "Please insert JWT with Bearer into field",
            Name = "Authorization",
            Type = UseOpenApiV2 ? SecuritySchemeType.ApiKey : SecuritySchemeType.Http,
            Scheme = "bearer",
            BearerFormat = "JWT",
        });

    c.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
            {
                new OpenApiSecurityScheme
                {
                    Reference = new OpenApiReference
                        {Type = ReferenceType.SecurityScheme, Id = "Bearer"},
                },
                new string[0]
            }
    });
    c.DocumentFilter<IncludeHostDocumentFilter>();
});
services.AddSwaggerGenNewtonsoftSupport();

...

配置

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApiVersionDescriptionProvider provider)
{
    if (!env.IsEnvironment("PROD"))
    {
        app.UseSwagger();
        app.UseSwaggerUI(o =>
        {
            foreach (var description in provider.ApiVersionDescriptions)
            {
                o.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant());
            }
            o.RoutePrefix = "swagger";
        });
    }

    app.UseCors("CorsPolicy");
    app.UseAuthentication();
    app.UseRequestResponseLogging();
    app.UseMvcWithDefaultRoute();
}

感谢您的指点!

【问题讨论】:

  • 你能分享你的启动招摇配置吗?

标签: c# asp.net-core swagger openapi aspnet-api-versioning


【解决方案1】:

您可以在 Swagger 文档中设置 Description 属性,如下所示:

c.SwaggerDoc("v4", 
         new OpenApiInfo 
         { 
            Version="v4",
            Title="v4 API",
            Description="DRAFT"
          });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2019-02-25
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多