如何将Swagger配置成?
摘要:1.引入Swagger包。 nuget引入Swashbuckle.AspNetCore 2、配置Swagger中间件 在Startup类ConfigureServices方法中添加Swagger服务并配置文档信息 services.AddS
1.引入Swagger包。
nuget引入Swashbuckle.AspNetCore
2、配置Swagger中间件
在Startup类ConfigureServices方法中添加Swagger服务并配置文档信息
services.AddSwaggerGen(c =>
{
// 使用反射获取xml文件。并构造出文件的路径 //需要在项目-属性-生成里面勾上XML文档文件
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
// 启用xml注释. 该方法第二个参数启用控制器的注释,默认为false.
c.IncludeXmlComments(xmlPath, true);
//Bearer 的scheme定义
var securityScheme = new OpenApiSecurityScheme()
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Name = "Authorization",
//参数添加在头部
In = ParameterLocation.Header,
//使用Authorize头部
Type = SecuritySchemeType.Http,
//内容为以 bearer开头
Scheme = "bearer",
BearerFormat = "JWT"
};
//把所有方法配置为增加bearer头部信息
var securityRequirement = new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] { }
}
};
//注册到swagger中
c.AddSecurityDefinition("Bearer", securityScheme);
c.AddSecurityRequirement(securityRequirement);
});
接口信息标记
展示效果
最后Configure中增加
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
扩展:分组呈现
configureServices中
c.SwaggerDoc("V1", new OpenApiInfo { Title = "计划任务", Version = "V1" });
c.SwaggerDoc("V2", new OpenApiInfo { Title = "My API2", Version = "V2" });
Configure中
options.SwaggerEndpoint($"/swagger/V1/swagger.json", "V1");
options.SwaggerEndpoint($"/swagger/V2/swagger.json", "V2");
控制器中
结果
根据控制上分组标记 动态呈现方式 -----未完待续
