(转)解决swagger跨项目或跨程序集注释不显示问题
原文地址:https://www.cnblogs.com/ricolee/p/swagger-summary.html
背景#
我们在使用Swagger生成.NET Core Web Api
项目接口文档时候,发现接口的入参和出参的注释是看不见的,如下:
但是我想要结果是这样:
原因分析以及方案#
为什么没有显示注释呢,注释确实写了呀?
原因很简单,通常我们用Swagger的时候只加载当前项目生成的xml
注释文件,例如这样:
Copy
var xmlPath = Path.Combine(basePath, "AppData", "XXX.WebAPI.xml"); services.AddSwaggerGen(c => { c.IncludeXmlComments(item); }
如果你的入参和出参的实体不在当前项目文件下,而是在Model层或者领域层创建的,肯定是没有的。
怎么解决?
- 首先入参和出参的实体所在项目要勾选输出
xml
注释文件; 这个简单在项目的属性->生成页面勾选就行; - Swagger要加载
xml
注释文件;
代码如下:
Copy
public void ConfigureServices(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; } }
即可实现以上效果!
相关推荐
SAMXIE 2020-11-04
XuDanT 2020-09-16
permanent00 2020-09-15
哈嘿Blog 2020-09-08
Qizonghui 2020-08-02
莫问前程 2020-08-02
SAMXIE 2020-07-26
XuDanT 2020-07-24
Qizonghui 2020-07-18
coolhty 2020-07-05
Qizonghui 2020-06-28
Qizonghui 2020-06-25
莫问前程 2020-06-22
SAMXIE 2020-06-14
莫问前程 2020-06-14
XuDanT 2020-06-07
qingjiuquan 2020-06-07
TimeMagician 2020-06-03
opendigg 2020-06-02