最终效果:
1.安装依赖包:
dotnet add package Swashbuckle.AspNetCore
2. 增加注释
工程文件中添加生成文档节点
3.在Program.cs中添加OpenApi文档描述
// 添加 Swagger 服务
builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "Game Admin Api Doc",
Description = "An ASP.NET Core Web API For Game Admin",
TermsOfService = new Uri("http://43.136.40.107/"),
Contact = new OpenApiContact
{
Name = "Example Contact",
Url = new Uri("http://43.136.40.107/")
},
License = new OpenApiLicense
{
Name = "Example License",
Url = new Uri("http://43.136.40.107/")
}
});
// 使用 XML 注释
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));
// 添加 JWT 认证支持(如果使用)
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
In = ParameterLocation.Header,
Description = "Please enter a valid token",
Name = "Authorization",
Type = SecuritySchemeType.Http,
BearerFormat = "JWT",
Scheme = "Bearer"
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type=ReferenceType.SecurityScheme,
Id="Bearer"
}
},
new string[]{}
}
});
});
4.添加swagger路由
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
options.RoutePrefix = "swagger";
});