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