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、接口需要按照规范写注释,最终结果如下: