根據 SmartBear 最新的《2023 年軟體品質狀況 - API》報告,微服務持續成為組織中 API 的主要成長驅動力。
自 REST 和 SOAP 以來,API 世界已大幅成長。雖然請求-回應 API 並不會消失,但事件驅動架構 (EDA) 正在興起,成為組織中更優化的核心組件。它們作為 RESTful 和其他 API 系統可以整合的中央匯流排。對於希望更好地管理其擴展微服務資產的開發團隊來說,EDA 提供更靈活且可擴展的解決方案。
雖然 EDA 已經穩定建立,但這些系統需要更多的治理和控制。如今,AsyncAPI 開源計劃旨在將 OpenAPI 和 Swagger 帶給 RESTful 系統的東西帶給 EDA。
EDA 透過在 B2B 和 B2C 垂直領域(例如電子商務、金融服務和保險)中解耦服務和集中式基礎架構,提供增強的開發人員體驗。
SwaggerHub 歡迎支援 AsyncAPI
雖然事件驅動 API 的採用不如 RESTful API 廣泛,但它們越來越受歡迎。AsyncAPI 是用於記錄和描述事件驅動 API 架構的主要規格。與 OpenAPI 一樣,組織將選擇採用 AsyncAPI 來控制和管理其事件驅動 API。
在 SmartBear,我們已經從早期階段到廣泛採用,觀察並管理了 Swagger 和 OpenAPI。我們很高興看到當我們增加 SwaggerHub 和整個工具產品組合中的支援時,這些模式中有多少可以應用於 AsyncAPI。
在 SwaggerHub 中使用 AsyncAPI 的優點
隨著組織的微服務架構不斷發展,同時擁有 RESTful 和事件驅動 API 的組合變得越來越普遍。
使用 SwaggerHub 的好處是集中化這些不同 API 的編目、支援協作工作流程,並透過標準化和治理來降低成本。將 RESTful 和事件驅動 API 緊密結合在一起是管理產品組合的重要一步。透過這個單一 API 目錄,開發人員、架構師、設計師和消費者都可以從改進的探索和更高的治理中受益。
SwaggerHub 為整個組織的團隊提供相同的 AsyncAPI 和 OpenAPI 體驗,用於 API 設計、文件、協作和標準化。
為什麼標準化很重要
根據《2023 年軟體品質狀況 - API》 - 51% 的受訪者認為標準化是他們需要解決的首要挑戰。
讓我們考慮一種情境:作為一個組織,您可能會決定您的 API 定義需要包含聯絡方式。這是一個小細節,資深設計師需要不斷提醒新設計師添加並確保它們存在。小事情會產生很大的影響。在這種情況下,很容易想像花費多少時間來尋找正確的聯絡人。
除了這種情況之外,團隊在不使用 API 標準化時可能會遇到的其他陷阱包括:
- 安全風險 - 如果 API 設計時沒有考慮安全性,則存在暴露敏感資料的風險。
- 整合問題 - 可能會浪費時間來了解不同的 API 及其運作方式。此過程中的任何誤解都會導致錯誤。
- 成本增加 - 開發和維護 API 需要更多的準備時間和資源,並且很難找到熟悉 API 的開發人員。
- 資料格式不一致 - 當 API 資料格式不一致時,開發人員體驗不佳,並可能出現整合問題。
- 可擴展性降低 - 隨著更多 API 的加入,當它們未標準化時,擴展會更加困難。
SwaggerHub 中的 AsyncAPI 標準化
回到上述情境,確保永遠不會忘記這些細節的最佳方法是在設計過程中使用 SwaggerHub 添加標準化,現在支援 RESTful 和 Async 規格。透過在兩種協定中使用標準化實務,團隊可以加快設計速度,同時保持品質和樣式一致性。您可以使用自訂和內建規則來強制執行組織特定樣式指南中的 API 治理。開發團隊可以確信他們建立的 API 將通過內部閘道檢查並按設計工作。
值得一提的是,API 產品組合標準化的一個要素 - 程式碼檢查。當發生拼寫錯誤時,我們都知道 Microsoft Word 中的紅色波浪線。在 API 的世界中,程式碼檢查會顯示在 IDE 中,它可以作為引導我們行動和闡明我們意圖的路標。
請參閱如何在 SwaggerHub 中使用 AsyncAPI 標準化,以及目前支援的規則清單,請參閱 SwaggerHub 文件。
Spectral 對標準化規則的影響
在觀察業界如何朝著 AsyncAPI 標準化發展時,當時的主要工具是 Spectral。SwaggerHub 中選擇的規則列表很大程度上受到 Spectral AsyncAPI 規則集的影響。這些規則基於開放原始碼社群中完成的出色工作。
SmartBear 工具的 AsyncAPI 支援
SmartBear 致力於尋找整合 API 生命週期的不同部分並縮小開發人員可見性差距的新方法。在測試 AsyncAPI 時,我們已涵蓋所有方面。
領先的合約測試工具 PactFlow 使您能夠輕鬆捕捉與 AsyncAPI 相關的重大變更,以免它們在軟體開發生命週期 (SDLC) 的後期造成問題 - 您可以為您的 Async 服務使用合約測試。目前,PactFlow 不支援 AsyncAPI,但建立此功能的工作正在路線圖上進行。
使用我們頂級的端對端測試工具 ReadyAPI,獲得完整的覆蓋範圍,它現在支援 AsyncAPI 定義。將在 SwaggerHub 中產生和管理的 AsyncAPI 設計匯入(整合)到 ReadyAPI 中進行測試,以建構您的 Kafka 堆疊。 在此處閱讀更多內容。
行動呼籲方塊:準備好開始使用 SwaggerHub 的 AsyncAPI 支援了嗎? 登入您的帳戶 或 建立免費試用。