-- Asp.net core Swagger 接口文档及在线API调试
【官网】:https://swagger.io/
应用场景
Swagger是最主流的API开发工具,符合OpenAPI规范,可根据API接口及注释自动生成API在线文档(同时也是在线调用调试控制台),它可以贯穿于整个API生态,比如API的设计、编写API文档等。而且Swagger是一种通用的、与具体编程语言无关的API描述规范.基础资源
Swashbuckle.AspNetCore,Microsoft.Extensions.PlatformAbstractions,.net core 3.1
使用须知
为什么使用Swagger作为API文档生成工具? 1)Swagger 可以生成一个具有互动性的API在线文档及调用测试控制台,开发者可以用来快速学习和尝试API。 2)Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 3)Swagger 文件可以在许多不同的平台上从代码注释中自动生成。 4)Swagger 有一个强大的社区,里面有许多强悍的贡献者。
配置步骤
A)为什么要使用Swagger及Swagger的效果预览。
为什么使用Swagger作为API文档生成工具?
1)Swagger 可以生成一个具有互动性的API在线文档及调用测试控制台,开发者可以用来快速学习和尝试API。
2)Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
3)Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
4)Swagger 有一个强大的社区,里面有许多强悍的贡献者。
效果预览如下:
B)Swagger基础应用。
step1) 针对controller项目,安装相关的基础包.
1.1) 在NuGet里面搜索Swashbuckle.AspNetCore包进行安装. (仅安装这个,无参数注释)
1.2) 在nuget中搜索安装Microsoft.Extensions.PlatformAbstractions包 (该包解决参数注释的显示)。
step2)在Startup类的ConfigureServices方法里面注入服务。
// 添加Swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "API Swagger Doc Demo (@http://config.net.cn)", Version = "v1" , Description = "API Swagger Doc Demo", TermsOfService =new Uri("http://config.net.cn"), Contact = new OpenApiContact { Name = "配置啦", Email = string.Empty, Url =new Uri("http://config.net.cn") }, License = new OpenApiLicense { Name = "来自配置啦授权", Url = new Uri("http://www.cnblogs.com/yilezhu/") } }); #region//add method and params notes (Microsoft.Extensions.PlatformAbstractions包相关的配置) // 获取xml文件名 //var basePath = AppContext.BaseDirectory;//仅支持windows下,linux下不正常 var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//这里支持window,linux var xmlPath = Path.Combine(basePath, "ConfigLab.Dnc.Tester.xml");//自动生成的文件名格式: "项目名+.xml" c.IncludeXmlComments(xmlPath, true);// 添加控制器层注释,true表示显示控制器注释 #endregion//add method and params notes (Microsoft.Extensions.PlatformAbstractions包相关的配置) });
services.AddControllers();//asp.net core 3.1项目自带的服务设置.
step3)在Startup类的Configure方法里面添加Swagger有关的中间件。
#region// 添加Swagger有关中间件
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "ConfigLab Api Swagger v1");//这里又可以被第三方的api测试平台等读取,避免手工录入
});
#endregion// 添加Swagger有关中间件
app.UseRouting();
app.UseAuthorization();
step4)设置项目的XML文档路径。
注:
//var basePath = AppContext.BaseDirectory;//仅支持windows下,linux下不正常 var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//这里支持window,linux var xmlPath = Path.Combine(basePath, "ConfigLab.Dnc.Tester.xml");//自动生成的文件名格式: "项目名+.xml"
step5)代码中添加类,方法,参数级别的注释。
效果预览:
C)Swagger高级应用。
c1)利用api调用控制台测试API,比postman更爽。
step1)进入指定api.
step2)填写参数信息。
step3)查看请求结果。
常见问题
快速入门
无