(一)回顧:
上一篇為大家介紹了在.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)看看運行效果:
