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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM