Swagger 支援 OpenAPI 3.1

  2023 年 6 月 19 日

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-api 上查看 Swagger 開源專案詳細資訊。

先前更新和新的產品發佈,新增了豐富的編輯和驗證體驗,現在 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 文件的內容也已變更。規格現在要求頂層至少存在 pathscomponentswebhooks 之一。先前的規格版本要求 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 的開源計畫。歡迎查看我們的貢獻指南,並隨時發揮您的影響力。