(二)集成Swagger接口文檔分組配置.net core


(一)回顧:

上一篇為大家介紹了在.NET Core中如何集成Swagger的介紹,想想集成操作其實非常簡單便捷,實質就三個步驟:

(1)在項目中執行nuget命令,拉取Swagger包到項目:Install-package Swashbuckle.AspNetCore

(2)在ConfigureServices方法中新增如下代碼

#region Swagger
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info
        {
            Version = "v1.1.0",
            Title = "Swagger WebAPI",
            Description = "XXX項目API文檔",
            TermsOfService = "None",
            Contact = new Swashbuckle.AspNetCore.Swagger.Contact
            {
                Name = "XXX項目",
                Email = "273145719@qq.com"
            ,
                Url = "https://www.cnblogs.com/NBIDataVis/"
            }
        });
        // 為 Swagger JSON and UI設置xml文檔注釋路徑
        var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
        var xmlPath = Path.Combine(basePath, "CoreWebAPI.xml");
        //如果需要顯示控制器注釋只需將第二個參數設置為true
        c.IncludeXmlComments(xmlPath, true);
    });
#endregion

(3)在Configure方法中新增如下代碼

#region Swagger
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
      c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiDocument V1");
    });
#endregion

(二)問題:

通常一個項目中有很多的功能模塊,每個功能模塊又可能對應很多的接口,如果所有的接口都在一個列表顯示,顯然是比較混亂的,不便於調用方閱讀和查找。

當然Swagger為我們已經考慮到了這一點,它能支持分組顯示,具體怎么做呢,請看下面的配置:

(三)Swagger分組文檔配置:

(1)在ConfigureServices方法中新增如下代碼

#region Swagger
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info
        {
            Version = "v1.1.0",
            Title = "Swagger WebAPI",
            Description = "XXX項目API文檔",
            TermsOfService = "None",
            Contact = new Swashbuckle.AspNetCore.Swagger.Contact
            {
                Name = "XXX項目",
                Email = "273145719@qq.com"
            ,
                Url = "https://www.cnblogs.com/NBIDataVis/"
            }
        });
        
        c.SwaggerDoc("User", new Info { Title = "用戶模塊", Version = "User" });   //分組顯示
        c.SwaggerDoc("Project", new Info { Title = "項目模塊", Version = "Project" });   //分組顯示

        var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
        var xmlPath = Path.Combine(basePath, "CoreWebAPI.xml");
        c.IncludeXmlComments(xmlPath, true);
    
    });
#endregion

(2)在Configure方法中新增如下代碼

#region Swagger
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
        c.SwaggerEndpoint("/swagger/User/swagger.json", "用戶模塊");  //分組顯示
        c.SwaggerEndpoint("/swagger/Project/swagger.json", "項目模塊");  //分組顯示
    });
#endregion

(3)在Controller類上指定分組名:


 

(4)看看運行效果:


免責聲明!

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



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