在設計和記錄 API 時,必須遵循 REST API 的基本原則。這包括識別資源并使用有意義的 URL 表示它們,適當地使用 HTTP 方法進行 CRUD(創建、讀取、更新、刪除)操作,以及以無狀態的方式管理資源狀態。通過采用面向資源的方法,開發團隊可以為客戶端開發人員設計直觀且易于使用的 REST API。REST API 文檔應突出顯示可用的端點、支持的方法、接受和返回的數據格式,以及任何安全性或分頁約束。
API 風格書籍在這一階段發揮著關鍵作用。它們提供了設計指南和標準,以確保開發的 API 一致性和質量。這些樣式書定義了 URI 結構、要使用的 HTTP 方法、數據格式、錯誤處理等規則,并可作為組織內 API 項目的通用參考。常用工具包括信號燈和 SwaggerHub,簡單的 Wiki 工具也足夠。
數據模型庫通過提供可重用的數據模型,定義 API 中使用的標準數據結構,來完成這一階段。數據模型庫包括 JSON 模式、數據庫定義、對象模型等,提供現成的資產,減少錯誤,加速開發。常用工具有 Apicurio 和 Signal Lights。
API 門戶上的 API 經常缺少工作流 API 的描述,這帶來了如下問題:
如何鏈接 API 調用?
如何描述這些調用的順序?用圖示還是文本?
如何確保最了解 API 的人能夠讀懂并定期更新?
理解 API 調用的順序往往比較困難,但通常通過 API 門戶上的附加文檔進行補充。然而,這些文檔與開發人員提供的代碼分離。OpenAPI 規范允許定義鏈接和回調,但這在解釋過程中有限制。因此,最近出現了 OpenAPI 工作流規范,用于定義 API 工作流,這些步驟用 JSON 描述,允許生成模式來解釋調用順序。
如果希望從 OpenAPI 規范描述工作流,可以使用 Swagger Editor 或 SwaggerHub。也可以使用 Swagger to UML 或 OpenAPI to PlantUML。例如,可以使用 PlantUml 或 LucidChart 從設計序列圖開始。工具鏈的選擇取決于是否偏好自頂向下還是自底向上的方法。像 Stolight Studio 和 Redocly 這樣的工具,通常用于處理這些主題,Apicurio 也是如此。它們可以用于 API 設計,使團隊能夠使用用戶友好的界面輕松創建和可視化 OpenAPI 規范,并自動生成交互式文檔,確保文檔始終是最新的,并且與 API 規范保持一致。
API 開發
一旦定義了 API 規范,下一步就是根據設計階段制定的指導方針和模型來開發 API。敏捷軟件開發方法、有效的協作以及版本管理是確保高效開發的關鍵實踐。
對于版本控制,團隊使用 Git 或 GitHub 等版本控制系統來管理 API 源代碼。版本控制支持開發人員之間的無縫協作,并確保 API 隨時間變化的完全可跟蹤性。
在開發過程中,可以使用檢查工具來確保 API 規范的質量。這些工具可以檢查以下內容:
代碼的語法和結構
遵守編碼標準和命名約定
正確使用庫和框架
是否存在死代碼或冗余代碼
潛在的安全問題
Swagger-Lint 和 Apicurio Studio 或 Stoltlight 可以用來執行這些檢查,確保 API 規范的質量。這些檢查也可以集成到 CI/CD 工具鏈中,以實現自動化和持續集成。
一旦開發了API,就需要在整個生命周期中有效地部署和管理它們。這包括版本管理、部署管理、性能監控,以及確保API的可用性和可靠性。API管理平臺如Gravitee、Tyk、WSO2 API Manager、Google Cloud Apigee和Amazon API Gateway等,可以幫助進行API的部署、版本管理和監控。這些平臺提供了一些高級特性,如緩存、速率限制、API安全性和配額管理。這些功能對于擴展規模非常重要。