vs2022 搭建NET6 WebApi 接口項目《二》 配置swagger


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   

        

 

 

       最終的效果就是這樣的

      

 


免責聲明!

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



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