1.配置Swagger

2023-12-15 17:01:58

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();

这就是中间件的封装?????不懂,不管

文章来源:https://blog.csdn.net/qq_57676486/article/details/135018946
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。