在Nuget管理器里找到Swashbuckle.AspNetCore,安装,版本自选
安装成功后在Startup.cs里添加
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
运行程序
接口如果都加了Authorize验证,可以统一给头加验证信息
在ConfigureServices里添加:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API V1", Version = "v1"});
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
});
services.AddSwaggerGen(s => {
//添加安全定义
s.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "请输入token,格式为 Bearer xxxxxxxx(注意中间必须有空格)",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
BearerFormat = "JWT",
Scheme = "Bearer"
});
//添加安全要求
s.AddSecurityRequirement(new OpenApiSecurityRequirement {
{
new OpenApiSecurityScheme{
Reference =new OpenApiReference{
Type = ReferenceType.SecurityScheme,
Id ="Bearer"
}
},new string[]{ }
}
});
});
在launchSettings.json里修改launchUrl的值为“swagger”
运行项目:
在这里填token,所有的接口都能直接用了,不用一个一个填
另:如果运行程序出现错误:Internal Server Error /swagger/v1/swagger.json
检查一下controller里有没有public但是没有打Http标签的,比如这个
要么把public改成private,要么打上HttpGet,比如这样: