.NetCore3.1 WebApi中Swagger配置

官方教程: https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio#add-and-configure-swagger-middleware

参考: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

 配置完后运行项目,注释信息就出来了

原文地址:https://www.cnblogs.com/xinbaba/p/14272767.html