### 階段1:定義
在API生命周期的第一階段,產品經理和其他利益相關者必須定義單個API或API組的運營、業務和安全要求。這要求他們同意API的預期用例,并確定將在生命周期的每個后續階段進行移動的團隊成員。他們還應該創建和配置一個團隊成員可以協作的專用工作區,以及一個連接到CI管道的GitHub存儲庫。這些步驟有助于穩定API生命周期的其余部分,并為特定階段的工作建立位置和工具。
API設計涉及就API如何向消費者公開數據做出有意的決定。然后,這些決策被捕獲在API定義中,該定義是API預期功能的人類和機器可讀表示。API定義符合API規范,如OpenAPI和AsyncAPI,它們為API定義提供了標準化的格式和詞匯,并為API合同、文檔、模擬和測試奠定了基礎。
領導者可能希望通過定義組織模式和實踐來塑造API的表面積和行為來標準化設計階段。例如,他們可能要求所有團隊遵循OpenAPI規范,他們還可以定義可以通過自動檢查強制執行的大寫、命名和標點符號的樣式規則。
設計完API后,開發人員負責編寫實現其預期功能的代碼。大多數開發團隊使用Git進行版本控制,這使他們能夠安全地管理更改,并在必要時恢復到以前的迭代。他們通常還使用GitHub或GitLab存儲庫來存儲他們的源代碼,跟蹤與代碼相關的問題,并進行代碼審查。開發工作流程差異很大,因此領導者必須明確定義這些流程,以標準化其團隊的方法。
API測試發生在API生命周期的“開發”、“安全”和“部署”階段,使開發人員和QA團隊能夠確認API是否按預期工作。API測試可以手動執行,也可以從多個地理區域或在CI/CD管道中自動運行。早期測試,通常有助于團隊在問題根深蒂固或進入生產之前浮出水面并進行補救。
有許多不同類型的API測試,每個測試都有其獨特的目的。例如,合同測試用于確保任何更改不會導致API偏離設計階段的承諾。相比之下,性能測試可以幫助確認API能夠在適當的時間內提供響應。
API生命周期的“安全”階段涉及檢查API的常見安全漏洞,這些漏洞可能會損害應用程序的整體安全態勢。例如,重要的是要確認API的身份驗證邏輯只允許合法用戶與API交互并訪問其數據。這些API安全檢查可以在CI/CD管道中手動或自動運行,它們有助于確保組織投資組合中的每個API都遵循相同的安全標準。
API生命周期的“部署”階段是指將API發布到開發、分期和生產環境的過程。許多團隊利用CI/CD管道和API網關來標準化部署流程,并確保每批更改在到達消費者之前都經過適當的測試和安全。一致的流程使部署更具可預測性,這對每周多次發布新代碼的敏捷團隊尤為重要。
API生命周期的“觀察”階段涉及在生產中收集、可視化和提醒API遙測數據。在此階段,SRE和DevOps工程師將配置監視器,以自動通知他們API性能和安全問題,并利用將API性能數據置于上下文中的APM工具。在錯誤、延遲和安全漏洞對依賴服務、合作伙伴和客戶產生負面影響之前,API可觀察性在浮現錯誤、延遲和安全漏洞方面發揮著至關重要的作用。
在“分發”階段,團隊將專注于提高其API的可發現性。API目錄在這個階段起著至關重要的作用。公共API目錄幫助API生產者接觸和支持第三方消費者,而私有API目錄使內部團隊更容易協作和使用彼此的API。每個API還應包括詳細的描述和相關標簽,這將有助于確保目錄的搜索引擎可以顯示它。
分發可能是API生命周期的最后階段,但這還不是結束。API工作具有高度迭代性,團隊在處理消費者反饋和開發新功能時,將不斷返回到最早的生命周期階段。
英文原文: API lifecycle
RESTful API生命周期管理實踐