Use Swagger In .NET 5.0
在開發專案前端的過程中,使用 Swagger 讓我省了不少事,提升跟後端溝通的效率,大大減少了溝通成本,今天,要為各位做個簡單的 Swagger 介紹,以及如何在 .net 5.0 中建立 Swagger 服務。
什麼是 Swagger?
簡言之, Swagger 是一套可以幫助開發者與使用者管理 API 的工具。
Swagger 的好處?
- Swagger 所產生的 API 文件,讓開發者可以知道有哪些 API 可以介接。
- 可以讓開發者知道,API 需要給那些參數,以及需要使用哪種請求方法(request methods),GET、POST、PUT、DELETE。
- 隨著專案規模愈大,前後端需要傳遞的資料規格也更複雜,可以幫助前後端一起制定需要傳遞的資料規格。
- 工程師通常都不喜歡寫文件,可以藉由 Swagger 讓工程師少寫文件。
- 作為 API 的測試工具,當前端打 API 失敗或是回傳預期外的資料,都可以及時跟後端溝通。
建立 Swagger
從建立一個新專案開始
專案類型
設定專案名稱 與 位置
Framework 設定 .NET 5.0;打開 HTTPS;勾選「啟用 OpenAPI 支援」的話,專案會自動建立 Swagger 服務,我們這次用手動建立,取消勾選。
專案建立成後,開啟「套件管理員設定」
在套件來源中,查看是否有關於 NuGet 的套件來源,若無,按新增。
將名稱改為:NuGet Package source (可自訂)
來源改為:https://api.nuget.org/v3/index.json將套件來源改為:Nuget Package source
並搜尋:Swashbuckle.AspNetCore
安裝安裝完成
關於 Swashbuckle.AspNetCore
是一套用來文件化 .NET APIs 的 Swagger 工具。
主要有 3 個元件:
- Swashbuckle.AspNetCore.SwaggerGen
檢視 API 程式碼,並產生 Swagger Document 物件。 - Swashbuckle.AspNetCore.Swagger
可將 Swagger Document 物件公開為 JSON 端點。 - Swashbuckle.AspNetCore.SwaggerUI
產生 API 文件,讓使用者在網頁測試 API。
將
Swashbuckle.AspNetCore.SwaggerGen
加入Startup.ConfigureServices
應用程式服務之中1
services.AddSwaggerGen();
將
Swashbuckle.AspNetCore.Swagger
加入Startup.Configure
1
app.UseSwagger();
將
Swashbuckle.AspNetCore.SwaggerUI
加入Startup.Configure
1
2
3
4app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "weatherForecast v1");
});SwaggerEndpoint
方法的 - 第一個參數
為 Swagger Document 物件的 Endpoint 位置,v1
是 Swagger Document 物件的預設名稱,所以/swagger/v1/swagger.json
是預設路由位置。v1
名稱是可以修改的,之後會補充。 - 第二個參數
會顯示在 Swagger UI 右上角,之後若有多個不同類別的 API,可以由此切換。將
launchSettings.json
內,專案的launchUrl
改成 Swagger選取專案,啟動 Swagger 服務 (Ctrl + F5)
Swagger UI 預設的網址路由為
https://localhost:5001/swagger
顯示目前唯一的預設 APIWeatherForecast
Swagger 所產生的 Swagger Document 物件 URL:
https://localhost:5001/swagger/v1/swagger.json
以上就是建立 Swagger 的流程,關於 Swagger UI 顯示的資訊,說明與修改,將另開篇幅討稐。