Swagger相关问题合集
进行swagger配置时报错 Not Found http://localhost:5027/swagger/v1/swagger.json
配置代码
/// <summary>
/// API文档配置 配置Swagger
/// </summary>
/// <param name="services"></param>
/// <param name="configuration"></param>
/// <returns></returns>
public static IServiceCollection AddSwaggerExtension(this IServiceCollection services, IConfiguration configuration)
{
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v0.0.1", new OpenApiInfo(){
Title = $"流程管理系统API文档",
Version = "v0.0.1",
Description =$"基于ASP.NET8 + VUE3的前后分离流程管理系统API文档。"
});
// xml文档绝对路径
var file = Path.Combine(AppContext.BaseDirectory, "BY.FusionHub.API.xml");
// true: 显示控制器层注释
options.IncludeXmlComments(file, true);
// 对action的名称进行排序
options.OrderActionsBy(o => o.RelativePath);
// 添加安全定义--配置支持Token授权机制
// 便于后续在Swagger中进行授权测试
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "请输入Token,格式为 Bearer xxxxxxx(注意中间必须有空格)",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
BearerFormat = "JWT",
Scheme = "Bearer"
});
// 添加安全要求
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference()
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] { }
}
});
});
return services;
}
报错内容
因为这里的swagger默认是v1版本的,如果 options.SwaggerDoc("v0.0.1",new OpenApiInfo()) 中第一个参数不是 v1 就会报错。