胖胖滴加菲猫

导航

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
View Code

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.”

 

 

posted on 2019-11-22 16:42  胖胖滴加菲猫  阅读(546)  评论(1编辑  收藏  举报