官档地址:
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle
个人整理:
1、开启注释:属性-生成-所有配置-XML文档文件-"document.xml"
2、Nuget安装 Swashbuckle.AspNetCore (5.0.0以上版本,目前只有预览版)
Nuget安装 Microsoft.AspNetCore.Mvc.NewtonsoftJson (注意不是Newtonsoft.Json,该包此处无效)
3、Startup.ConfigureServices中添加
services.AddRazorPages();
services.AddControllers()
//原生Json服务中文、变量、注释支持差,这里切换为Newtonsoft提供的Json服务,必须引用Microsoft.AspNetCore.Mvc.NewtonsoftJson,引用Newtonsoft.Json此处无效
.AddNewtonsoftJson(options =>
{
//保持Json属性/变量大小写
options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
//忽略循环引用
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
//设置时间格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//如字段为null值,该字段不会返回到前端
//options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
//生成swagger
services.AddSwaggerGen(options =>
{
//设置swagger标题
options.SwaggerDoc("doc", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "@Title", Version = "v1.0" });
//添加接口注释
options.IncludeXmlComments("document.xml");
});
4、Startup.Configure中添加
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
});
app.UseSwagger();
app.UseSwaggerUI(options => options.SwaggerEndpoint("/swagger/doc/swagger.json", null));
5、访问地址:/swagger 区分大小写