在開發API站台時,時常要與前端開發者做對接,Swagger提供了很完善的說明文件,也可以立即做測試
接下來介紹如何ASP.NET Core中使用Swagger產生說明文件
安裝套件
Swagger主要有三個套件
- Swashbuckle.AspNetCore.Swagger: 公開
SwaggerDocument
物件作為 JSON 端點。 - Swashbuckle.AspNetCore.SwaggerGen: 可以從Model、Controller、Router 等 建立
SwaggerDocument
- Swashbuckle.AspNetCore.SwaggerUI: 可解析
Swagger Json
來產生畫面
從 Visual Studio 中可以在套件管理員中找到這三個套件
設定Swagger MiddleWare
在ConfigureServices
加入 Swagger產生器
1 | public void ConfigureServices(IServiceCollection services) |
在Startup.Configure
方法中,啟用Swagger Middleware 用來產生json文件與Swagger UI
1 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) |
接著編譯一下並啟動 瀏覽https://localhost:<port>/swagger
就可以看到Swagger的API說明文件了
剛剛設定的Json端點文件會產生在 https://localhost:<port>/swagger/v1/swagger.json
自訂Swagger API 說明資訊
你也可以自行設定額外的Swagger API的說明資訊 在 ConfigureServices
設定
1 | services.AddSwaggerGen(c => |
在Swagger上加入Controller中或Model的註解
在程式當中所寫的註解,都可以透過Swagger產生說明文件,讓使用API的人更加了解API的意義及所需參數
我自訂了一個簡單的Controller
1 | /// <summary> |
自訂了一個簡單的類別 UserInfo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22/// <summary>
/// 使用者資訊
/// </summary>
public class UserInfo
{
/// <summary>
/// 編號
/// </summary>
public int Id { get; set; }
/// <summary>
/// 帳號
/// </summary>
public string Account { get; set; }
/// <summary>
/// 名稱
/// </summary>
public string Name { get; set; }
/// <summary>
/// 電話號碼
/// </summary>
public string Phone { get; set; }
}
接下來要讓專案產生註解的XML 並加入到Swagger中
打開專案檔 加入1
2
3<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
就會在編譯的時候 在組態的同名資料夾下會有檔名與專案同名的XML文件
這個XML文件的內容就是程式碼的註解
接下來要將這個註解XML檔案加入到Swagger中 在ConfigureServices
加入設定
1 | services.AddSwaggerGen(c => |
重新執行就會看到剛剛所寫的程式碼註解,也有完整的類別說明,提高API文件的可讀性
結論
透過Swagger產生API說明文件的方式,可以節省開發人員撰寫額外的文檔時間,又可以解決文件與程式碼的同步問題,同時產生的文檔也可以立即進行測試,對於前後端開發者的對接可以增加開發效率。