.NetCore3.1 WebApi中Swagger配置
参考:https://www.cnblogs.com/yilezhu/p/9241261.html#!comments 作者:依乐祝
参考:https://www.cnblogs.com/LYF1997/p/11473967.html 作者: 风雨流逝
使用环境vs2019,架构.netCore3.1创建 WebApi项目
创建完成后再NuGet程序包中搜索Swashbuckle.AspNetCore 包进行引用
将 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服务集合中:
//配置Swagger //注册Swagger生成器,定义一个Swagger 文档 services.AddSwaggerGen(c => { // 添加文档信息 c.SwaggerDoc("v1", new OpenApiInfo { Title = "TestWebApi", Version = "v1", Description = "测试API" }); });
在Configure方法里加入下面的代码
//启用中间件服务生成Swagger app.UseSwagger(); //启用中间件服务生成SwaggerUI,指定Swagger JSON终结点 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "TestWebApi"); c.RoutePrefix = string.Empty;//设置根节点访问(路由前缀设置为空) });
运行结果如下:
上面只显示了接口,但是没有显示接口的注释信息,此事双击“项目”,进入.csproj文件,在 PropertyGroup 节点下添加以下代码,
<GenerateDocumentationFile>true</GenerateDocumentationFile> <NoWarn>$(NoWarn);1591</NoWarn>
第一行代码表示“启用 XML 注释”。启用 XML 注释,为未记录的公共类型和成员提供调试信息。 警告消息指示未记录的类型和成员。 例如,以下消息指示违反警告代码 1591:
warning CS1591: Missing XML comment for publicly visible type or member 'TodoController.GetAll()'
第二行代码表示“取消警告”
也可采用第二种方法,直接“项目”右键->属性
在输出下勾选“XML文档文件”,并在取消警告中添加“1591”,进行启动。
配置完后,在Startup中 为Swagger设置XML路径,读取XML信息
#region 读取xml信息 // 使用反射获取xml文件,并构造出文件的路径 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 启用xml注释,该方法第二个参数启用控制器的注释,默认为false. c.IncludeXmlComments(xmlPath, true); #endregion
配置完后运行项目,注释信息就出来了