Swagger 發佈 OpenAPI 3.1 的支援
我們很高興宣布 Swagger 開源生態系統全面支援 OpenAPI 3.1。
重點摘要:
🎉Swagger 現在支援 OpenAPI 3.1 的編輯和渲染支援。
Swagger 提供 JSON Schema 2020-12 的渲染支援。
在 Swagger UI、Swagger Client、Swagger Editor (Next)、Swagger Parser、Swagger Core 和 ApiDOM 中新增了 OpenAPI 3.1 支援。
繼先前更新和新的產品發佈,新增了豐富的編輯和驗證體驗,現在 Swagger UI 中支援渲染 OpenAPI 3.1 文件,並廣泛支援最新版本的 JSON Schema 規格 (Draft 2020-12)。
此里程碑伴隨著新的 Swagger Editor 對於 AsyncAPI (版本 2.*) 的開箱即用支援,這表示 Swagger 為跨所有版本的 OpenAPI 和 AsyncAPI 工作的開發團隊帶來豐富的體驗。
什麼是 OpenAPI 3.1?
OpenAPI 3.1 是OpenAPI 規格 (OAS) 的最新版本(撰寫時)。Open API 規格定義了 HTTP API 的標準、與語言無關的介面描述。它允許人類和電腦理解服務的功能,而無需存取原始程式碼、額外文件或檢查網路流量。
在 OpenAPI 3.1 中,OAS 技術指導委員會 (TSC) 在經過社群辯論後,決定不遵循語意版本控制。這允許進行某些重大變更,以符合 JSON Schema 2020-12 並解決從 OpenAPI 3.0 中學到的經驗,並納入一個次要版本更新。這些變更已記錄為發行說明的一部分。
OpenAPI 3.1 中包含許多改進。對我們而言,最突出的新增/變更包括
Schema 物件
現在完全符合 JSON Schema Draft 2020-12,且基本類型已更新為基於 JSON Schema Draft 2020-12。
Webhooks
已作為頂層欄位引入到 OpenAPI 物件
,允許描述作為 API 一部分提供的頻外註冊 Webhook。
Components
物件現在允許定義 pathItems
,在 OpenAPI 文件中提升可重複使用的路徑項目物件
。
Info 物件
支援除了預先存在的 description
欄位之外,還具有 summary
欄位。
- 授權物件有一個新的識別碼欄位,用於SPDX授權碼。
- 構成有效 OpenAPI 文件的內容也已變更。規格現在要求頂層至少存在
paths
、components
或 webhooks
之一。先前的規格版本要求 paths
。現在,有效的 OpenAPI 文件可以僅描述 Webhook,甚至只描述可重複使用的元件。
如需詳細的變更清單,請查看 Mike Ralphson(OAS TSC 成員)撰寫的這篇文章。
Swagger 的 OpenAPI 支援
以下是目前對 OpenAPI 3.0 和 3.1 支援層級的概述。我們將很快跟進,提供更詳細的欄位層級分解。
OAS
|
ApiDOM
|
Swagger Editor (next)
|
Swagger Core
|
Swagger Parser
|
Swagger UI
|
Swagger Client
|
OpenAPI 物件
|
|
|
|
|
|
|
資訊物件
|
|
|
|
|
|
|
聯絡人物件
|
|
|
|
|
|
|
授權物件
|
|
|
|
|
|
|
伺服器物件
|
|
|
|
|
|
|
伺服器變數物件
|
|
|
|
|
|
|
元件物件
|
|
|
|
|
|
|
路徑物件
|
|
|
|
|
|
|
路徑項目物件
|
|
|
|
|
|
|
操作物件
|
|
|
|
|
|
|
外部文件物件
|
|
|
|
|
|
|
參數物件
|
|
|
|
|
|
(某些限制)
|
請求主體物件
|
|
|
|
|
|
|
媒體類型物件
|
|
|
|
|
|
|
編碼物件
|
|
|
|
|
|
(某些限制)
|
回應物件
|
|
|
|
|
|
|
回應物件
|
|
|
|
|
|
|
回呼物件
|
|
|
|
|
|
|
範例物件
|
|
|
|
|
|
|
連結物件
|
|
|
|
|
|
|
標頭物件
|
|
|
|
|
|
|
標籤物件
|
|
|
|
|
|
|
參考物件
|
|
|
|
|
|
|
Schema 物件
|
(某些限制)
|
(某些限制)
|
(某些限制)
|
(某些限制)
|
(某些限制)
|
(某些限制)
|
辨別器物件
|
|
|
|
|
|
|
XML 物件
|
|
|
|
|
|
|
安全性配置物件
|
|
|
|
|
|
|
OAuth 流程物件
|
|
|
|
|
|
|
OAuth 流程物件
|
|
|
|
|
|
|
安全性需求物件
|
|
|
|
|
|
|
規格擴充功能
|
|
|
|
|
|
|
接下來的計畫
接下來的重點將放在彌補 OpenAPI 3.1 支援中發現的任何差距。此外,也將與更廣泛的社群合作,以確保整合和採用適用於 OpenAPI 3.1 的最新 Swagger 功能。
我們致力於在各種 API 規格和語言中支援 API 社群。為此,我們計畫公開我們的 Swagger 藍圖,並提供有關我們最新創新的一些更新資訊。為了透明化我們在各個專案中的規格支援,我們將很快提供該參考資訊。
我們歡迎您參與我們在 Swagger 的開源計畫。歡迎查看我們的貢獻指南,並隨時發揮您的影響力。