Swagger 接口文档管理
Swagger是我们的好朋友,让后端不用再写文档(当然文档该写的还得写)
但是更方便我们对自己接口的测试,推荐使用Swagger 进行接口文档管理
这里简单介绍比较常用的的点,
一定要提官方文档
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-6.0&tabs=visual-studio
文档比我写的讲的详细
1.Swagger 注释
我们要把打开Xml文件生成
首先打开你项目的.csproj文件
打开方式 右键项目 -> 编辑项目文件
我们希望在每个方法后面添加介绍,以便于我们测试和前端的阅读
我们要打开XML文档文件生成
首先打开你项目的.csproj文件
打开方式 右键项目 -> 编辑项目文件
<PropertyGroup>
//加上底下这行代码
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
或者
右键项目 -> 属性 -> 生成 -> 输出 -> 文档文件 -> 勾选上生成包含API文档的文件
然后Progarm.cs 添加如下代码
builder.Services.AddSwaggerGen(options => {
//注释
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
//第二个参数为是否显示控制器注释,我们选择true
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename),true);
});
2.简单版本控制
首先我们创建个枚举类
/// <summary>
/// Api版本枚举类
/// </summary>
public enum ApiVersions
{
/// <summary>
/// 版本V1
/// </summary>
V1=1,
/// <summary>
/// 版本V2
/// </summary>
V2=2
}
然后添加如下代码
builder.Services.AddSwaggerGen(options => {
/*
//只有参数里的V1是要和下面配置路径保持一致,
//剩下的乱写也不报错 但是不推荐
options.SwaggerDoc("V1", new OpenApiInfo
{
Title = $"项目名",
Version = "V1",
Description = $"项目名:V1版本"
});
*/
//生成多个文档显示
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//添加文档介绍
options.SwaggerDoc(version, new OpenApiInfo
{
Title = $"项目名",
Version = version,
Description = $"项目名:{version}版本"
});
});
});
和
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(options => {
/*
options.SwaggerEndpoint($"/swagger/V1/swagger.json",$"版本选择:V1");
*/
//如果只有一个版本也要和上方保持一致
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//切换版本操作
//参数一是使用的哪个json文件,参数二就是个名字
options.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"版本选择:{version}");
});
});
}
最后在我们的控制器上方加上特性
[ApiExplorerSettings(GroupName ="V1")]
[HttpGet]
public IEnumerable<WeatherForecast> Get(Wea weather)
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
3.添加Jwt认证功能
添加如下代码
builder.Services.AddSwaggerGen(options =>
{
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme()
{
Description = "在下框中输入请求头中需要添加Jwt授权Token:Bearer Token",
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[] { }
}
});
});
转载自https://bxshare.top/index.php/archives/12/
标签:接口,V1,version,文档,new,Swagger,options From: https://www.cnblogs.com/ABSchurke/p/17023644.html