WebAPI项目中使用Swagger

最近开始用一个工具Swagger,可以自动生成接口文档并测试接口,简直太好用了,可以告别PostMan,并且也不用写接口文档了,强烈推荐!!!

首先声明一下,这个是针对WebApi的,继承Controller是控制器是不支持的哦。

1、在NuGet里面搜索Swashbuckle.AspNetCore包进行安装

 2、在Startup类添加相关内容

 ConfigureServices方法里面注入服务,全局添加了Authorize

 1             services.AddSwaggerGen(c =>
 2             {
 3                 // Bearer 的scheme定义
 4                 var securityScheme = new OpenApiSecurityScheme()
 5                 {
 6                     Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
 7                     Name = "Authorization",
 8                     //参数添加在头部
 9                     In = ParameterLocation.Header,
10                     //使用Authorize头部
11                     Type = SecuritySchemeType.Http,
12                     //内容为以 bearer开头
13                     Scheme = "bearer",
14                     BearerFormat = "JWT"
15                 };
16 
17                 //把所有方法配置为增加bearer头部信息
18                 var securityRequirement = new OpenApiSecurityRequirement
19                 {
20                     {
21                             new OpenApiSecurityScheme
22                             {
23                                 Reference = new OpenApiReference
24                                 {
25                                     Type = ReferenceType.SecurityScheme,
26                                     Id = "bearerAuth"
27                                 }
28                             },
29                             new string[] {}
30                     }
31                 };
32 
33                 //注册到swagger中
34                 c.AddSecurityDefinition("bearerAuth", securityScheme);
35                 c.AddSecurityRequirement(securityRequirement);
36                 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
37                 var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
38                 c.IncludeXmlComments(xmlPath);
39             });

在Configure方法里面添加中间件

1             app.UseSwagger();
2             app.UseSwaggerUI(c =>
3             {
4                 c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
5                 c.RoutePrefix = string.Empty;
6             });

3、设置:选择项目点击右键-》属性=》生成=》勾选输出下面的XML文档文件的对勾

 4、接口需要按照规范写注释,最终结果如下:

 

posted @ 2021-05-10 14:34  高空燕子飞过  阅读(319)  评论(0编辑  收藏  举报