原文地址:https://www.cnblogs.com/ricolee/p/swagger-summary.html

#

我们在使用Swagger生成.NET Core Web Api 项目接口文档时候,发现接口的入参出参的注释是看不见的,如下:

(转)解决swagger跨项目或跨程序集注释不显示问题

但是我想要结果是这样:

(转)解决swagger跨项目或跨程序集注释不显示问题

#

为什么没有显示注释呢,注释确实写了呀?

(转)解决swagger跨项目或跨程序集注释不显示问题

原因很简单,通常我们用Swagger的时候只加载当前项目生成的xml注释文件,例如这样:

Copy

如果你的入参出参的实体不在当前项目文件下,而是在Model层或者领域层创建的,肯定是没有的。

怎么解决?

  1. 首先入参出参的实体所在项目要勾选输出xml注释文件; 这个简单在项目的属性->生成页面勾选就行;
  2. Swagger要加载xml注释文件;

代码如下:

Copy
IServiceCollection services)
{
    services.AddSwaggerGen(c =>
    {
        foreach (var item in XmlCommentsFilePath)
        {
            c.IncludeXmlComments(item);
        }
    });
}

static List<string> XmlCommentsFilePath
{
    get
    {
        var basePath = PlatformServices.Default.Application.ApplicationBasePath;
        DirectoryInfo d = new DirectoryInfo(basePath);
        FileInfo[] files = d.GetFiles("*.xml");
        var xmls = files.Select(a => Path.Combine(basePath, a.FullName)).ToList();
        return xmls;
    }
}

即可实现以上效果!

#

我们在使用Swagger生成.NET Core Web Api 项目接口文档时候,发现接口的入参出参的注释是看不见的,如下:

(转)解决swagger跨项目或跨程序集注释不显示问题

但是我想要结果是这样:

(转)解决swagger跨项目或跨程序集注释不显示问题

#

为什么没有显示注释呢,注释确实写了呀?

(转)解决swagger跨项目或跨程序集注释不显示问题

原因很简单,通常我们用Swagger的时候只加载当前项目生成的xml注释文件,例如这样:

Copy

如果你的入参出参的实体不在当前项目文件下,而是在Model层或者领域层创建的,肯定是没有的。

怎么解决?

  1. 首先入参出参的实体所在项目要勾选输出xml注释文件; 这个简单在项目的属性->生成页面勾选就行;
  2. Swagger要加载xml注释文件;

代码如下:

Copy
IServiceCollection services)
{
    services.AddSwaggerGen(c =>
    {
        foreach (var item in XmlCommentsFilePath)
        {
            c.IncludeXmlComments(item);
        }
    });
}

static List<string> XmlCommentsFilePath
{
    get
    {
        var basePath = PlatformServices.Default.Application.ApplicationBasePath;
        DirectoryInfo d = new DirectoryInfo(basePath);
        FileInfo[] files = d.GetFiles("*.xml");
        var xmls = files.Select(a => Path.Combine(basePath, a.FullName)).ToList();
        return xmls;
    }
}

即可实现以上效果!

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-10-17
猜你喜欢
  • 2021-07-17
  • 2022-12-23
  • 2022-01-12
  • 2022-12-23
  • 2021-09-18
  • 2021-06-28
  • 2021-09-17
相关资源
相似解决方案