1.为生成的api追加注释
Program.cs
builder.Services.AddSwaggerGen(option =>
{
//xml文档绝对路经--读取根据控制器api生成的Xml的文件 ?????
var file = Path.Combine(AppContext.BaseDirectory,
"BookReadWebApi.xml");
//true显示器层展示注释
option.IncludeXmlComments(file, true);
//action排序
option.OrderActionsBy(o => o.RelativePath);
});
配置让swagger展示注释
2.不同版本api的版本控制
0.创建版本枚举文件夹
1.获取api的名称
builder.Services.AddSwaggerGen(option =>
{
typeof(ApiVersions).GetEnumNames().ToList().ForEach(Version =>
{
//1.先获取所有name
option.SwaggerDoc(Version,new Microsoft.OpenApi.Models.OpenApiInfo()
{
Title = $"读书平台",
Version = Version,
Description = $"通用版本的CoreApi版本{Version}"
});
});
......
}
2.遍历api
app.UseSwaggerUI(c =>
{
foreach(string version in typeof(ApiVersions).GetEnumNames())
{
c.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"阅读平台第{version} 版本");
}
});
3.控制当前api只在特定(V1)的版本中展示改接口
[ApiExplorerSettings(IgnoreApi =false,GroupName =nameof(Utility.SwaggerExt.ApiVersions.V1))]
静态类里面的静态方法的this成为扩展方法
可以将里面的方法调用改写
CustomSwaggerExt.AddSwaggerExt(builder.Services);等效于
builder.Services.AddSwaggerExt();
这就是中间件的封装?????不懂,不管