基于.NET6平台开发WebApi(三)—— 添加Swagger支持
基于NET6平台WebApi尝鲜项目: 基于最新的.NET6平台,完全抛弃繁杂的接口,采用.NET最经典的三层架构,结合简化的DDD设计模式... (gitee.com)
本项目使用的一些框架如下:
Swagger,Serilog,Sqlugar,CSRedis,Autofac
具体配置将会在后续逐一介绍
1、首先我们对项目进行引用,右键.NET6.Api项目依赖项,选择添加项目引用,勾选NET6.Domain和NET6.Infrastructure,使用相同的方法为NET6.Infrastructure添加NET6.Domain引用。
2、打开Nuget,搜索安装Swashbuckle.AspNetCore。
3、由于swagger是基于xml文件来加载文档,所以我们要启用项目的xml,分别右键NET.Api和NET.Domain,选择属性,找到生成→输出,勾选生成包含Api文档的文件。
4、打开Program.cs,添加如下代码
var basePath = AppContext.BaseDirectory; #region 添加swagger注释 builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Api" }); var xmlPath = Path.Combine(basePath, "NET6.Api.xml"); c.IncludeXmlComments(xmlPath, true); var xmlDomainPath = Path.Combine(basePath, "NET6.Domain.xml"); c.IncludeXmlComments(xmlDomainPath, true); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "Value: Bearer {token}", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); c.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" },Scheme = "oauth2",Name = "Bearer",In = ParameterLocation.Header, },new List<string>() } }); }); #endregion
#region 启用swaggerUI app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs"); c.RoutePrefix = string.Empty; c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.None); c.DefaultModelsExpandDepth(-1); }); #endregion
编译运行,swagger便出现在我们眼前。
本文来自博客园,作者:昨夜丶雨疏风骤,转载请注明原文链接:https://www.cnblogs.com/netsix/p/15762614.html