如何在ASP.NET Core中配置Swagger?

z4bn682m  于 2023-08-08  发布在  .NET
关注(0)|答案(2)|浏览(142)

我想在我的项目中实现/配置Swagger。
我已经安装了(Swashbuckle)包,这是必要的 Swagger 实施。
我应该在哪里添加swagger配置,或者我应该包含哪个文件。

but5z9lq

but5z9lq1#

如果您将从正确的模板创建一个项目,它已经带有Swagger预设置。例如,您可以使用ASP.NET Core Web API模板(通过IDE或使用带有webapi模板名称的dotnet new command)。它包括(对于.NET 7):

  • 预装软件包:
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.7"/>
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0"/>

字符串

  • Swagger设置(以Program.cs为单位):
// ...
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

// ...

if (app.Environment.IsDevelopment()) // by default enabled only for dev.
{
     app.UseSwagger();
     app.UseSwaggerUI();
}


另请阅读:

  • Swashbuckle.AspNetCore:入门
v8wbuo2f

v8wbuo2f2#

.NET 7 WebAPI项目,您需要在Program.cs文件上配置它。
您需要将Swagger生成器添加到服务集合中。

var builder = WebApplication.CreateBuilder(args);
//Add the Swagger generator to the services collection
builder.Services.AddSwaggerGen();

字符串
使用JWT授权配置Swagger的示例如下:

builder.Services.AddSwaggerGen(option =>
{
    option.SwaggerDoc("v1", new OpenApiInfo { Title = "Demo API", Version = "v1" });
    option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        In = ParameterLocation.Header,
        Description = "Please enter a valid token",
        Name = "Authorization",
        Type = SecuritySchemeType.Http,
        BearerFormat = "JWT",
        Scheme = "Bearer"
    });
    option.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference
                {
                    Type = ReferenceType.SecurityScheme,
                    Id = "Bearer"
                }
            },
            new string[]{ }
        }
    });
});

相关问题