参考博客:完整教程说明
https://www.cnblogs.com/yanweidie/p/5709113.html
解决类库引用问题(请求是个实体不显示说明)
https://www.cnblogs.com/eastday/p/6382613.html
加载多个xml说明文件
二、.net core 添加swagger流程
step1、引入包: Swashbuckle.AspNetCore
step2: appsetting 配置文件
"Service": {
"Name": "IdentityServerApi.consul.webapi",
"DocName": "consulapi",
"Version": "v1",
"Title": "consulapi测试服务",
"Description": "测试服务api",
"Contact": {
"Name": "華子",
"Email": "huazaizuiaiw@163.com"
},
"XmlFile": [
{ "Xml": "net5.consul.webapi.xml" },
{ "Xml": "net5.consul.webapi.xml" }
]
},
step3:StartUp
public void ConfigureServices(IServiceCollection services)
{
#region 注册swagger
services.AddSwaggerGen(s =>
{
var entityXml = new List<ConfigXmlEntity>();
Configuration.GetSection("Service:XmlFile").Bind(entityXml);
s.SwaggerDoc(Configuration["Service:DocName"], new OpenApiInfo
{
Title = Configuration["Service:Title"],
Version = Configuration["Service:Version"],
Description = Configuration["Service:Description"],
Contact = new OpenApiContact
{
Name = Configuration["Service:Contact:Name"],
Email = Configuration["Service:Contact:Email"]
}
});
var basePath = PlatformServices.Default.Application.ApplicationBasePath;
//var xmlPath = Path.Combine(basePath, Configuration["Service:XmlFile"]);
foreach (var xmlItem in entityXml)
{
s.IncludeXmlComments(Path.Combine(basePath, xmlItem.Xml));
}
});
#endregion
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime applicationLifetime)
{
#region swagger
app.UseSwagger(c =>
{
c.RouteTemplate = "doc/{documentName}/swagger.json";
});
app.UseSwaggerUI(s =>
{
s.SwaggerEndpoint($"/doc/{Configuration["Service:DocName"]}/swagger.json",
$"{Configuration["Service:Name"]} {Configuration["Service:Version"]}");
});
#endregion
}
}
step5: 如果遇到乱码,把配置文件appsettings.json编码改为utf-8
注意:勾选输出XML文档文件,并将其copy到发布后的目录中(如果没有自动复制的话)