您的位置:首頁技術文章
文章詳情頁

NetCore 配置Swagger的詳細代碼

瀏覽:169日期:2022-06-08 17:46:15
目錄
  • 1.添加Nuget
  • 2.添加靜態類擴展方法
  • 3.StartUp注冊服務,添加中間件

1.添加Nuget

install-package Swashbuckle.AspNetCore -project XXX -version 6.4.0

2.添加靜態類擴展方法

2.1.生成項目xml:選中項目 / 右鍵 / 屬性 / 生成 / 輸出 / 選中xml文檔文件

2.2.system_v1:必須唯一不重復,且【options.SwaggerDoc("system_v1"】必須與【options.SwaggerEndpoint("/swagger/system_v1/】一致,不然會異?!綟ailed to load API definition; Fetch error: response status is 404 /swagger/system_v1/swagger.json】

/// <summary>
    /// Swagger 靜態類
    /// </summary>
    public static class SwaggerExtend
    {
/// <summary>
/// 添加服務: swagger
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static void AddCustSwagger(this IServiceCollection services)
{
    var version = "V1.0";
    var apiName = "XXX系統";
    services.AddSwaggerGen(options =>
    {
options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());

options.SwaggerDoc("system_v1", new OpenApiInfo
{
    Version = version,
    Title = $"{apiName} API",
    Description = $"{apiName} {version} 接口服務"
});

//  獲取應用程序所在目錄
var basePath = Path.GetDirectoryName(typeof(SwaggerExtend).Assembly.Location);
var xmlPath = Path.Combine(basePath, "ProjectName.xml");
//  swagger界面默認只顯示 方法&字段 注釋,不顯示 控制器注釋
//  第二個參數為true, 則是controller的注釋
//options.IncludeXmlComments(xmlPath);
options.IncludeXmlComments(xmlPath, true);
    });
}

/// <summary>
/// 添加中間件: swagger
/// </summary>
/// <param name="app"></param>
public static void UseCustSwagger(this IApplicationBuilder app)
{
    app.UseSwagger();
    app.UseSwaggerUI(options =>
    {
options.SwaggerEndpoint("/swagger/system_v1/swagger.json", "系統API");
//  默認路徑為:/swagger/index.html
//  路由前綴 - 設置為空,可直接跳轉到swagger頁面:/index.html
//  api測試可設置為空,部署時容易與前端路由沖突
options.RoutePrefix = string.Empty;
    });
}
    }

3.StartUp注冊服務,添加中間件

public void ConfigureServices(IServiceCollection services)
{
    services.AddCustSwagger();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseCustSwagger();
}

到此這篇關于NetCore 配置Swagger的的文章就介紹到這了,更多相關NetCore 配置Swagger內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: ASP.NET
国产综合久久一区二区三区