[小菜一碟] 不開放 Swagger 的端點,要怎麼提供 Web API 的規格?

在 ASP.NET Core Web API 專案套用了 Swagger 之後,在 Development 環境下預設會有一個 /swagger/index.html 網址來查看 Web API 的規格,但是有些客戶因為公司政策的關係,希望關閉 Swagger 端點,改使用靜態文件,本篇文章有兩個可行的方案提供給大家參考。

Swagger Editor

Swagger Editor 是 Swagger 官方提供的一個線上版編輯器,用來編輯 Swagger 的組態內容,同步呈現 Swagger UI。

我們可以將我們的 swagger.json 檔案下載下來,請呼叫端的開發者使用 Swagger Editor 打開,就能以 Swagger UI 的方式瀏覽 Web API 的規格。

ReDoc CLI

Redoc 是一款 Open Source 的工具,用來從 OpenAPI 定義產生 API 文件。它預設提供三欄式的響應式介面:左側欄位包含搜尋欄與導覽選單;中央欄位顯示詳細的 API 文件內容;右側則呈現請求與回應的範例。這樣的設計讓開發者更方便瀏覽與理解 API 結構,非常適合用於開發文件的展示與分享。

Redoc 開發團隊有提供一個 CLI 工具,叫做 Redocly CLI,可以用來產生完整靜態的 Web API 規格文件,它支援的檔案格式是 yaml,執行下面指令即可。(從 Swagger UI 下載 yaml 檔案的方式在這裡

npx @redocly/cli build-docs swagger.yaml

預設輸出的 HTML 檔案名稱為 redoc-static.html,這個檔案就可以直接給呼叫端的開發者參考,畫面不輸 Swagger UI。

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學