作者:Janet Wagner
Web API 已存在近 20 年,但直到過去幾年,「API 優先」的概念才在軟體團隊中獲得關注。採用 API 優先方法建構產品的開發人員人數正在增加。因此,今天我們想向您介紹 API 優先的概念,以及為什麼這種方法越來越受重視。
API 優先方法是什麼意思?
API 優先方法表示,對於任何給定的開發專案,您的 API 都被視為「一等公民」。專案的所有內容都圍繞著最終產品將被行動裝置消耗,以及 API 將被客戶端應用程式消耗的想法。API 優先方法涉及開發一致且可重複使用的 API,這可以透過使用 API 描述語言 來建立 API 行為方式的合約來完成。建立合約需要花更多時間思考 API 的設計。它通常還涉及更多的規劃,以及在撰寫任何程式碼之前,與針對 API 設計提供回饋的利害關係人合作。
API 優先方法日益普及
如今,人類和機器都在消耗數據。人類透過應用程式消耗數據,通常來自許多不同的裝置 — 智慧型手機、筆記型電腦、平板電腦和桌上型電腦。許多不同類型的裝置意味著許多不同的螢幕尺寸。組織必須建構在所有裝置上看起來不錯且運作良好的應用程式。
API 允許公司將功能分解為個別、自主的服務(又稱微服務)。基於微服務建構應用程式可以幫助確保所有裝置上都有良好的使用者體驗 (UX)。API 優先策略允許組織建構服務於所有應用程式的 API,並且可以針對所有裝置、平台和作業系統有效率地開發和維護應用程式。
API 優先方法的優點
採用 API 優先方法建構產品有很多好處,包括但不限於:
開發團隊可以平行工作
API 優先涉及建立合約。在組織中的團隊之間建立服務合約,允許這些團隊同時處理多個 API。開發人員不必等待 API 更新發佈,才能繼續處理下一個 API。團隊可以根據已建立的 API 定義模擬 API 並測試 API 相依性。
降低應用程式開發成本
API 和程式碼可以在許多不同的專案中重複使用。當開發團隊想要建構新的應用程式時,他們不必從頭開始,這既耗時又昂貴。API 優先設計還允許在編寫任何程式碼之前解決大多數問題,這有助於防止在將 API 與應用程式整合時出現問題。
加快上市速度
使用允許匯入 API 定義檔的工具,可以自動化建構 API 的大部分流程。像 SwaggerHub 這類的工具允許匯入 API 定義檔,並且使用這些檔案可以自動產生 API 工具,例如 API 文件、SDK 和模擬 API。自動化顯著加快了 API 和應用程式的開發速度。
API 優先也使得在不必重新架構整個系統的情況下,將新服務和技術新增至應用程式成為可能。在開發應用程式方面競爭激烈,因此必須快速開發應用程式。如今,應用程式不僅必須精心設計,而且還必須在六個月內上市。
確保良好的開發人員體驗
API 的消費者通常是開發人員,而開發人員體驗 (DX) 可以決定 API 的成敗。API 優先確保開發人員在使用您的 API 時有正面的體驗。設計良好、文件齊全、一致的 API 提供正面的開發人員體驗,因為它更容易重複使用程式碼和讓開發人員上手,並縮短學習曲線。
降低失敗風險
對於大多數公司而言,API 用於幾乎每個業務流程 — 從行銷和銷售到通訊和面向消費者的應用程式,這意味著 API 可能會對您業務的每個部分產生正面或負面的影響。API 優先透過確保 API 可靠、一致且易於開發人員使用來降低失敗風險。
規劃您的 API 優先計畫
既然您已經了解以 API 優先方法進行產品開發的一些好處,您應該如何規劃和實施 API 優先方法?
以下只是您 API 優先計畫中應包含的一些內容。
- 集思廣益 - 首先,必須確定您的業務提供的關鍵服務和業務功能。找出應該建構哪種 API,以及應該透過 API 提供哪些服務。此外,找出並寫下每個 API 的使用案例。根據這些使用案例寫下潛在的端點。
- 建立 API 利害關係人 - 您組織內的利害關係人是誰?應該讓盡可能多的人參與您的 API 計畫 — 您需要全公司的支持,以及組織內團隊共同分享的願景。此外,允許利害關係人對 API 的設計提出意見。然後,利害關係人可以就整個組織的互動達成一致,以使 API 保持一致。
- 設計 API 合約 - 合約為設計 API 建立了一套標準和最佳實務。請務必描述所有 API 並建立文件。確保所有 API 的運作方式相同,從端點名稱和 URL 到錯誤程式碼和版本控制。一致性是關鍵。
- 建立樣式指南 - 全面、具凝聚力的樣式指南可確保組織中正在建構服務的團隊之間的一致性。API 狀態程式碼、版本控制、錯誤處理等等都將標準化,確保 API 以相同的方式設計。使用像 SwaggerHub 這樣的工具來為您組織的所有 API 建立樣式指南。
- 實施 API 管理 - API 管理流程可以幫助實施已建立的標準並加強期望的結果。我們將在即將發表的部落格文章中討論API 管理。進行同儕程式碼審查也有助於確保遵循 API 設計標準,並且開發人員正在產生高品質的程式碼。
- 自動化流程 - 使用像 SwaggerHub 這樣的工具來自動化產生 API 文件、樣式驗證、API 模擬和版本控制等流程。此外,使 API 成為自助服務,以便開發人員可以立即開始使用您的 API 建構應用程式。提供互動式文件或沙箱,以便開發人員可以試用 API 端點。
- 追蹤並管理您的 API 組合 - 透過追蹤和管理您的 API 組合,避免程式碼重複和建置多餘的 API。實施一個系統來協助您追蹤和管理您的 API。您的組織和平台越大,追蹤 API 及其相依性就越困難。
- 為內部開發人員建立入口網站 - 為內部開發人員建立一個中心位置,一個儲存所有 API 的所有內容的地方,包括 API 規格、文件、合約等。例如,PayPal 為其開發人員建立了一個入口網站,根據 一篇 InfoQ 文章 的說法,它是「PayPal 中最常被訪問的內部應用程式之一」。PayPal 的入口網站包括所有 API 的清單、文件、儀表板等。
API 作為一級公民
以 API 優先的方法來建置產品可以讓您的組織在許多方面受益。而 API 優先的方法要求團隊規劃、組織和分享他們 API 專案的願景。它也需要採用支援 API 優先方法的工具。
感謝您的閱讀!正在尋找更多 API 資源嗎?訂閱 Swagger 電子報。每月接收一封電子郵件,其中包含我們最好的 API 文章、培訓、教學等。訂閱