搭建Swagger(NET Core接口可视化)
一、简介:为了更好的管理和测试我们的接口,我这里使用了Swagger框架。Swagger是什么?Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 Web 服务。
二、安装Get包
Swashbuckle.AspNetCore
------------------------------------------------------------------------------
Swashbuckle.AspNetCore.Filters //使用token认证时添加,接口不需要token认证时不需要添加
三、打开Startup.cs文件,引用命名空间
using System.IO; using System.Reflection; using Swashbuckle.AspNetCore.Swagger;
----------------------------------------
//下面引用命名空间,使用token认证时添加,接口不需要token认证时不需要添加
using Swashbuckle.AspNetCore.Filters;
using Microsoft.OpenApi.Models;
using System.Collections.Generic;
四、在ConfigureServices方法里加入下面的代码,注册Swagger生成器,定义一个文档,设置xml文档的注释路径,。
//配置Swagger //注册Swagger生成器,定义一个Swagger 文档 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo() { Version = "v1", Title = "接口文档", Description = "RESTful API" });
//TOken认证时需要注册的认证规则
c.CustomSchemaIds(m => m.FullName);
var security = new OpenApiSecurityScheme
{
Description = "JWT授权,请输入 Bearer {Token} 进行身份验证",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey
};
c.AddSecurityDefinition("oauth2", security);
c.AddSecurityRequirement(new OpenApiSecurityRequirement { { security, new List<string>() } });
c.OperationFilter<AddResponseHeadersFilter>();
c.OperationFilter<AppendAuthorizeToSummaryOperationFilter>();
c.OperationFilter<SecurityRequirementsOperationFilter>();
// 为 Swagger 设置xml文档注释路径 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); });
五、在Configure方法里加入下面的代码,启用中间件服务使用生成Swagger和SwaggerUI,将SwaggerUI中的RoutePrefix设为空字符串,这样就能在根节点(http://localhost:port)直接显示SwaggerUI界面。
//启用中间件服务生成Swagger app.UseSwagger(); //启用中间件服务生成SwaggerUI,指定Swagger JSON终结点 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1"); c.RoutePrefix = string.Empty;//设置根节点访问 });
六、设置生成的xml文件
1.打开项目属性
2、点开生成页面:配置输出路径和XML文档文件
3.打开调试页面:启动浏览器配置的路径为空