基於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便出現在我們眼前。

