Swagger 與 OpenAPI 之間的差異為何?

  2017 年 10 月 26 日

今年標誌著 OpenAPI 3.0 的正式發佈,這是 OpenAPI 規範的最新版本。

對於參與 API 開發的人來說,OAS 3.0 的發佈,嗯... 算是大事一件。

為什麼?這個版本如此重要的最重要原因之一是,OpenAPI 3.0 是自從 SmartBear Software 將其捐贈給 OpenAPI 倡議組織,並在 2015 年從 Swagger 規範更名為 OpenAPI 規範以來,該規範的第一個正式發佈版本。

在我們深入探討 OpenAPI 3.0 對於 API 領域如此重要的原因之前,首先要釐清一些關於 OpenAPI 的問題,以及它對於 Swagger 的意義。

在過去兩年中,關於從 Swagger 變更為 OpenAPI 的問題很多。而且,關於 OpenAPI 和 Swagger 之間的差異、何時使用哪個名稱,以及 OpenAPI 和 Swagger 之間的關係也存在很多混淆。

讓我們先來釐清 Swagger 與 OpenAPI 的關係

理解兩者之間差異的最簡單方法是

  • OpenAPI = 規範
  • Swagger = 實作規範的工具

OpenAPI 是規範的官方名稱。規範的開發由 OpenAPI 倡議組織推動,該組織匯集了來自科技界不同領域的 30 多個組織,包括 Microsoft、Google、IBM 和 CapitalOne。領導 Swagger 工具開發的公司 Smartbear Software 也是 OpenAPI 倡議組織的成員,協助領導規範的發展。

Swagger 是與一些最著名且廣泛使用的實作 OpenAPI 規範的工具相關聯的名稱。Swagger 工具集包括開源、免費和商業工具的組合,可用於 API 生命週期的不同階段。

這些工具包括

  • Swagger 編輯器Swagger 編輯器可讓您在瀏覽器中編輯 YAML 格式的 OpenAPI 規範,並即時預覽文件。
  • Swagger UISwagger UI 是 HTML、Javascript 和 CSS 資產的集合,可從符合 OAS 的 API 動態產生精美的文件。
  • Swagger Codegen允許在給定 OpenAPI 規範的情況下,自動產生 API 用戶端程式庫(SDK 產生)、伺服器存根和文件。
  • Swagger 解析器用於從 Java 解析 OpenAPI 定義的獨立程式庫
  • Swagger Core用於建立、使用和處理 OpenAPI 定義的 Java 相關程式庫
  • Swagger Inspector (免費)API 測試工具,可讓您驗證 API 並從現有 API 產生 OpenAPI 定義
  • SwaggerHub(免費和商業版)API 設計和文件,專為使用 OpenAPI 的團隊而建構。

由於 Swagger 工具是由參與建立原始 Swagger 規範的團隊開發的,因此這些工具通常仍然被視為與該規範同義。但是,Swagger 工具並非唯一可用的實作 OpenAPI 規範的工具。有多種 API 設計、文件、測試、管理和監控解決方案支援規範的 2.0 版,並且正在積極努力新增 3.0 支援。

您可以在 GitHub 上找到提供 最新版本 OpenAPI 規範支援的工具完整列表

為什麼 Swagger 工具沒有將其名稱變更為 OpenAPI?

Swagger 生態系統一直由規範和圍繞它的核心開源工具組成,其中最著名的包括 Swagger UI、Swagger Editor 和 Swagger Codegen。規範如此廣泛採用的一個重要原因是與之共存的工具。

SmartBear 捐贈了該規範,但由於開發人員、技術作家、測試人員和設計師與該工具之間存在緊密的關聯,因此流行的開源 Swagger 工具仍然保留了原始品牌。該規範並非,也從未單獨與 Swagger 工具相關聯。事實上,捐贈該規範並成立 OpenAPI 倡議組織的決定是為了確保 OpenAPI 保持完全的供應商中立。這就是為什麼我們很高興看到 API 領域的許多公司,包括也支援其他定義格式(如 API Blueprint 和 RAML)的公司加入該倡議組織。

Swagger 團隊仍然專注於建構最強大且易於使用的工具,以便使用 OpenAPI 規範設計、記錄、開發和測試 API,並將繼續發展和改進我們的工具集以支援 OpenAPI。這些工具將繼續保留 Swagger 名稱。Swagger.io(Swagger 工具和開源 Swagger 專案的線上首頁)也將繼續成為瞭解 Swagger 工具的常用場所,我們也將繼續透過培訓、教學課程、網路研討會和文件,為使用 OpenAPI 的知識做出貢獻。

了解 OpenAPI 和 Swagger 社群

雖然為 OpenAPI 做出貢獻的人與為 Swagger 工具做出貢獻的人之間始終存在重疊,但這兩個社群彼此獨立。

如本文所述,OpenAPI 倡議組織是一個開放、供應商中立的組織,歡迎任何想要協助發展或在其 API 開發中利用該規範的人參與。邀請各組織加入不斷增加的成員列表,為該規範做出貢獻,並且歡迎個人透過在 GitHub 上分享想法和回饋,或參加每月在世界各地舉行的許多 OAS 聚會之一來參與。在此處瞭解更多關於如何貢獻的資訊

Swagger 工具本身有一個社群,專注於協助改進現有的 Swagger 專案,並引入新的想法和功能請求。Swagger 社群由 SmartBear Software 團隊培育,他們投入資源開發開源 Swagger 工具,同時也受到來自世界各地數千名 Swagger 使用者的貢獻所推動。如果您想加入 Swagger 社群,我們邀請您在 GitHub 上找到我們或加入Swagger API Meetup 群組。您也可以在 Swagger 部落格或 Twitter 上的@SwaggerAPI 找到最新的消息和更新。

展望 OpenAPI 的光明未來

我們期待看到 OpenAPI 成為 API 領域中每個人都認可的名稱,並且我們很興奮能成為不斷成長的 OpenAPI Initiative 成員社群的一份子。

希望這篇文章能幫助您釐清一些關於 OpenAPI 及其與 Swagger 之間關係的問題。

總結一下

  • 該規範於 2015 年更名為 OpenAPI 規範。OpenAPI 3.0 是該規範的最新版本。
  • 由 SmartBear Software 支援的 Swagger 工具,是實作 OpenAPI 規範最受歡迎的工具之一,並且將繼續維持 Swagger 的名稱(Swagger Editor、Swagger UI、SwaggerHub 等)。
  • 還有數百種其他與 Swagger 無關的開源和專業工具,支援 OpenAPI 2.0 規範,而且支援 3.0 的工具列表也持續增長中。
  • OpenAPI 和 Swagger 都有開源社群,並歡迎所有貢獻者加入,分享他們的想法並參與其中。

如果您有同事、朋友或任何其他正在使用 API 的人,仍然有這些疑問,我們希望您能分享這篇文章。Swagger 團隊將努力協助釐清 Swagger 和 OpenAPI 之間的關係,我們也希望您能這麼做!

Swagger 入門:OAS 和 Swagger 工具簡介

請於 11 月 14 日加入我們的免費培訓,該培訓將介紹 Swagger 工具生態系統和 OpenAPI 規範。了解更多資訊。