netcore2.2以及netcore3.0下的swagger使用
自从core3.0发布后,中间有很多东西跟以往用到的2.2版本相差特别多,今天主要来说一下swagger不同版本下的使用。
swagger就是一个可视化接口工具,为了方便让调用者能够很好的了解接口以及接口需要的参数!具体界面不做过多的截图,今天主要以应用为主。
一:2.2版本下面使用swagger
1.1:创建一个netcore2.2版本的webapi的项目
1.2:在Nuget中添加Swashbuckle.AspNetCore
1.3:在Startup类中增加如下内容:
1.3.1:在ConfigureServices方法中增加:services.AddSwaggerGen,具体代码如下:
1 #region 注册Swagger生成器 2 services.AddSwaggerGen(c => 3 { 4 c.SwaggerDoc("v1", new Info 5 { 6 Version = "v1.0", 7 Title = "wss API", 8 Contact = new Contact 9 { 10 Name = "wss", 11 Email = "loverwangshan@qq.com", 12 Url = "331803047" 13 }, 14 License = new License 15 { 16 Name = "版权所有 © wss", 17 Url = "http://331803047" 18 } 19 }); 20 var path = Path.Combine(AppContext.BaseDirectory, "MyFramework4CoreTest.xml"); //MyFramework4CoreTest.xml为右键属性生成的xml文件 21 c.IncludeXmlComments(path); 22 //c.OperationFilter<AddAuthTokenHeaderParameter>(); 23 }); 24 #endregion
1.3.2:Configure方法中增加:app.UseSwagger跟app.UseSwaggerUI,具体如下:
#region Swagger // 启用中间件服务生成Swagger作为JSON终结点 app.UseSwagger(); // 启用中间件服务对swagger-ui,指定Swagger JSON终结点 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "create by wss"); }); #endregion
1.4:项目右键属性生成-》输出(xml文档文件),谨记该文件一定要发布时始终复制,不然发布在IIS上面会报错
以上完成四步,则配置好了一个netcore2.2的swagger可视化接口!
二:3.0版本下面使用swagger
2.1:创建3.0的webapi项目
2.2:引用以下类库:
Microsoft.OpenApi
(以下类库在netcore3.0版本的必须要求5.0(目前只有预览版本))
Swashbuckle.AspNetCore
Microsoft.Extensions.PlatformAbstractions
Swashbuckle.AspNetCore.SwaggerGen
2.3:在Startup类中做如下操作:
2.3.1:在ConfigureServices方法中services.AddSwaggerGen,具体代码如下:
1 #region 注册Swagger生成器 2 services.AddSwaggerGen(c => 3 { 4 c.SwaggerDoc("v1", new OpenApiInfo 5 { 6 Version = "1.0.0.0", 7 Title = "wss 1.0.0.0", 8 Description = "wss ASP.NET Core Web API", 9 Contact = new OpenApiContact 10 { 11 Name = "wss", 12 Email = "loverwangshan@qq.com", 13 Url =new Uri("http://wpa.qq.com/msgrd?v=3&uin=331803047&site=qq&menu=yes") 14 }, 15 License = new OpenApiLicense 16 { 17 Name = "版权所有 © wss", 18 Url = new Uri("http://wss.net") 19 } 20 }); 21 var basePath = PlatformServices.Default.Application.ApplicationBasePath; 22 var xmlPath = Path.Combine(basePath, "MyFrameworkWebApi4Core3.0Test.xml"); 23 c.IncludeXmlComments(xmlPath); 24 }); 25 #endregion
2.3.2:在Configure方法中 app.UseSwagger 和 app.UseSwaggerUI,具体代码如下:
1 #region Swagger 2 // 启用中间件服务生成Swagger作为JSON终结点 3 app.UseSwagger(); 4 // 启用中间件服务对swagger-ui,指定Swagger JSON终结点 5 app.UseSwaggerUI(c => 6 { 7 c.SwaggerEndpoint("/swagger/v1/swagger.json", "wss"); 8 }); 9 #endregion
2.4:项目右键属性-》生成-》输出(xml文档文件),谨记该文件一定要发布时始终复制,不然发布在IIS上面会报错(生成输出的名字为:MyFrameworkWebApi4Core3.0Test.xml)
2.5:Action上面必须有 [HttpGet] 或者 [HttpPost] 等标识,不然会报“Failed to load API definition.”