.NET 9 OpenAPI 介紹與教學
目錄
OpenAPI 簡介
OpenAPI(前稱 Swagger)是一種用於描述 RESTful API 的開放標準(Open Specification)。其核心價值在於:
機器可讀:以 JSON 或 YAML 格式描述 API,包括路由(paths)、請求/回應模型(components)、安全機制(securitySchemes)等。
工具生態:可自動生成互動式文件(Swagger UI、ReDoc、Scalar),自動產生 Client SDK,甚至可結合測試/模擬伺服器。
清晰規範:統一規範能讓前後端、跨團隊協作時都依同一份文件開發。
一份典型的 OpenAPI 文件包含:
環境與套件清單
.NET 9 SDK
IDE:Visual Studio 2022 (17.7+) 或 VS Code
透過 CLI 安裝以下 NuGet 套件:
設定 API 版本管理
在 Program.cs(Minimal API 範例)中加入:
注意:若使用 Controller API,還需
builder.Services.AddControllers();並在app.MapControllers()前註冊版本化路由。
產生 多版本 OpenAPI 文件
緊接著,在建置完 builder 之後、呼叫 Build() 之前,動態為每個版本產生描述檔:
上面會在執行時為每個版本(如 v1、v2)生成相對應的 JSON:
整合 Swagger UI
在 app.Environment.IsDevelopment() 中加入:
開啟瀏覽器至 https://<host>/swagger,即可在 UI 下拉選單中切換不同版本。
整合 ReDoc
在同一區塊中,繼續啟用 ReDoc:
開啟 https://<host>/redoc 可看到由 ReDoc 生成的文件。
整合 Scalar UI
最後,以 Scalar 提供更現代化的互動介面:
瀏覽 https://<host>/scalar,側邊欄或下拉即可切換 v1、v2……等文件。
自訂與進階功能
XML 註解:在
.csproj中啟用<GenerateDocumentationFile>true</...>,並於AddOpenApiDocument加入IncludeXmlComments(...)。安全機制:在 OpenAPI 描述中新增
components.securitySchemes與security,並透過options.AddSecurity(...)注入。OAuth2/API Key:Swagger/UI、ReDoc、Scalar 都支援注入授權設定,方便互動測試。
UI 客製:調整路由前綴(
RoutePrefix)、標題(DocumentTitle)、注入自訂 CSS/JS(InjectStylesheet、InjectJavascript)等。
測試與驗證
執行專案
Swagger UI:
https://localhost:5001/swaggerReDoc:
https://localhost:5001/redocScalar UI:
https://localhost:5001/scalar
三者皆應呈現對應版本的互動式 API 文件;可透過下拉或側邊切換版本。
結語
這份教學示範了如何在 .NET 9 中,一步一步:
啟用 API 版本管理
產生 多版本 OpenAPI JSON
整合三種主流程式文件前端:
Swagger UI
ReDoc
Scalar UI
Last updated