在.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
在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)看看運行效果:

