1、在Program.cs中配置以下代碼
#region 添加swagger注釋 var basePath = AppContext.BaseDirectory; builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "Api" }); var xmlPath = Path.Combine(basePath, "TestApi.xml");// 注意這里接口的xml名稱,與項目名保持一致 c.IncludeXmlComments(xmlPath, true); var xmlDomainPath = Path.Combine(basePath, "TestDomain.xml"); // 注意這里實體類的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
2、啟用swagger,配置以下代碼
#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
3、配置實體類文檔和接口文檔
1、配置接口文檔,選中TestApi項目右鍵屬性,在生成->輸出中勾選 “生成包含API文檔的文件”
2、配置實體類文檔,選中TestDomain項目右鍵屬性,在生成->輸出中勾選 “生成包含API文檔的文件”
4、項目直接跑起來,可能路徑是最后的后綴是swagger,導致直接shit了,所以這里需要去刪除啟動路徑,找到launchSettings.json文件,刪除 "launchUrl": "swagger" 這個,打開的路徑就是https://localhost:7030/index.html
最終的效果就是這樣的