🚀介紹
aspnetcore.knife4j是一個基于.NET Core平臺的Swagger UI庫,它提供了API文檔的生成和管理功能。這個庫的前身是swagger-bootstrap-ui,在Java項目中廣泛使用,由于其優秀的界面和易用性被許多開發者所推崇。現在,aspnetcore.knife4j已經被集成到了.NET Core 3.0+和.NET Standard 2.0中。
通過使用aspnetcore.knife4j,開發者可以為自己的應用生成API文檔,從而可以更方便地基于API文檔進行測試。生成的文檔還可以導出,然后提供給前端開發團隊,前端開發團隊可以根據這些API接口編寫具體的調用代碼。這不僅提高了開發效率,也有助于提高項目的可維護性和可讀性。
此外,knife4j還提供了許多增強擴展功能,如自定義文檔、動態參數調試、I18n、接口排序、導出等。
🚀案例
🍀創建一個Asp.net Core 的webApi項目,debug啟動,這是官方默認使用的swagger界面
🍀首先,安裝nuget包
Package Manager : Install-Package Swashbuckle.AspNetCore.Swagger
Install-Package Swashbuckle.AspNetCore.SwaggerGen
Install-Package IGeekFan.AspNetCore.Knife4jUIORCLI :dotnet add package Swashbuckle.AspNetCore.Swagger
dotnet add package Swashbuckle.AspNetCore.SwaggerGen
dotnet add package IGeekFan.AspNetCore.Knife4jUI
🍀因為創建的是webApi項目,已經自帶了前兩個包,因此只需要安裝第三個
🍀安裝完成后在Program中找到原來的Swagger請求管道
將 app.UseSwaggerUI(); 換成以下代碼
app.UseKnife4UI(p =>{p.SwaggerEndpoint("/swagger/v1/swagger.json", "測試");p.RoutePrefix = ""; // 路由前綴});
🍀 然后將 launchSettings.json 文件中的 "launchUrl" 值設置為空,這樣當項目啟動的時候,就會直接跳轉到當前項目的applicationUrl
🍀此時啟動項目,swagger界面就是下面這樣了
🍀 在Controller中添加一個測試接口
/// <summary>
/// 測試控制器
/// </summary>
// [ApiController]
[Route("[controller]/[action]")]
public class TestController : ControllerBase
{/// <summary>/// 測試/// </summary>/// <returns></returns>[HttpGet]public OkResult Test(){return Ok();}
}
🍀在項目屬性中勾選生成XML Documentation文檔
?或者
🍀編輯項目的.csproj文件,在文件中插入
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "><DocumentationFile>bin\Debug\WebApplication.xml</DocumentationFile></PropertyGroup>
這樣在?Debug 模式下編譯 .NET 項目時,指定生成一個名為 ***.xml
?的 XML 文檔文件,該文件包含了項目源代碼中的文檔注釋?,這些注釋用于生成 API 文檔或者提供 IntelliSense 功能時的描述信息。
🍀此時重啟項目,我們的接口功能描述信息就變成在項目中寫的 ///注釋 了