什么是 API 優(yōu)先?

許多公司最初構(gòu)建 Web 或移動(dòng)應(yīng)用程序,然后作為附加項(xiàng)目開(kāi)發(fā) API,導(dǎo)致設(shè)計(jì)時(shí)未能充分構(gòu)建和測(cè)試 API。這種方法的問(wèn)題在于,它會(huì)導(dǎo)致人工 API 的設(shè)計(jì)過(guò)程不夠嚴(yán)謹(jǐn)。

相比之下,API 優(yōu)先開(kāi)發(fā)策略強(qiáng)調(diào)首先構(gòu)建 API,再基于該 API 開(kāi)發(fā)應(yīng)用程序。這迫使團(tuán)隊(duì)設(shè)計(jì)一個(gè)對(duì)開(kāi)發(fā)人員友好的 API,確保其更真實(shí)且易于使用。API 優(yōu)先開(kāi)發(fā)關(guān)注開(kāi)發(fā)人員的利益,從而節(jié)省大量工作,并為其他團(tuán)隊(duì)提供良好的構(gòu)建基礎(chǔ)。

為了簡(jiǎn)單起見(jiàn),可以想象在構(gòu)建云原生應(yīng)用程序時(shí),代碼提交到存儲(chǔ)庫(kù)后,測(cè)試會(huì)自動(dòng)運(yùn)行,候選版本能在幾分鐘內(nèi)上線。在這種理想環(huán)境下,多個(gè)團(tuán)隊(duì)能夠順利合作,提供各自的服務(wù)。

然而,如果不進(jìn)行有效的協(xié)調(diào),可能會(huì)導(dǎo)致集成失敗的噩夢(mèng)。API 優(yōu)先方法通過(guò)將 API 視為核心開(kāi)發(fā)工件,使團(tuán)隊(duì)能夠在不干擾內(nèi)部流程的情況下,專(zhuān)注于彼此的公共合同。

即使不打算將服務(wù)整合進(jìn)更大生態(tài)系統(tǒng),從 API 級(jí)別開(kāi)始開(kāi)發(fā)也會(huì)帶來(lái)顯著好處,值得投入時(shí)間。

為什么要 API 優(yōu)先開(kāi)發(fā)?

目前的開(kāi)發(fā)過(guò)程不是并行的,而是同步的。

一旦需要開(kāi)發(fā)新服務(wù)或新功能,研發(fā)團(tuán)隊(duì)就會(huì)開(kāi)始進(jìn)行設(shè)計(jì)。完成后,后端團(tuán)隊(duì)開(kāi)始編寫(xiě)原型(前端和問(wèn)答等其他團(tuán)隊(duì)正在等待)。原型完成后,可以準(zhǔn)備 API 文檔并與不同團(tuán)隊(duì)(問(wèn)答、前端)共享。

當(dāng)由于功能、錯(cuò)誤、改進(jìn)或增強(qiáng)而需要更改時(shí),這個(gè)循環(huán)將再次開(kāi)始,從而浪費(fèi)寶貴的開(kāi)發(fā)時(shí)間并縮短新服務(wù)的上市時(shí)間。

code first approach 如上圖所示,首先,后端團(tuán)隊(duì)開(kāi)始開(kāi)發(fā)和實(shí)現(xiàn)新的 API。其次,將 API 提供給前端團(tuán)隊(duì)和測(cè)試人員使用和測(cè)試。第三,前端團(tuán)隊(duì)和測(cè)試人員正在構(gòu)建 sdk、測(cè)試等與 API 交互。這就是同步開(kāi)發(fā)。

api-first 開(kāi)發(fā)將允許所有團(tuán)隊(duì)并行開(kāi)發(fā),而無(wú)需等待一個(gè)團(tuán)隊(duì)或另一個(gè)團(tuán)隊(duì)發(fā)布更改。

api first approach 在上圖中,我們可以看到創(chuàng)建的第一個(gè) API 是模擬的。其次,后端、前端和測(cè)試團(tuán)隊(duì)都開(kāi)始使用模擬的 API。一旦 API 準(zhǔn)備就緒,所有團(tuán)隊(duì)都可以切換到生產(chǎn)或暫存 API。這節(jié)省了大量的開(kāi)發(fā)時(shí)間。

Restcase 為 API 提供模擬、調(diào)試、自動(dòng)文檔和測(cè)試工具,并在所有設(shè)計(jì)和開(kāi)發(fā)階段提供團(tuán)隊(duì)通知和共享,使協(xié)作式 API 優(yōu)先方法的工作變得更加高效。

構(gòu)建服務(wù) API 優(yōu)先

如今,移動(dòng)優(yōu)先的概念越來(lái)越受到關(guān)注,指的是從項(xiàng)目一開(kāi)始就圍繞可供移動(dòng)設(shè)備使用的產(chǎn)品進(jìn)行構(gòu)建。同樣,API 優(yōu)先意味著構(gòu)建的是供客戶(hù)端應(yīng)用程序和服務(wù)使用的 API。

云原生不僅僅是一系列規(guī)則或指南,而是一種哲學(xué),某種程度上更是一種生活方式。云原生指南雖然不一定符合云所施加的特定物理要求,但對(duì)構(gòu)建現(xiàn)代應(yīng)用程序的人員和組織至關(guān)重要,這些應(yīng)用程序需為未來(lái)云環(huán)境的變化做好準(zhǔn)備。

每一個(gè)決策和代碼行都需圍繞 API 滿(mǎn)足應(yīng)用程序的每個(gè)功能需求。即使是用戶(hù)界面,無(wú)論是 Web 還是移動(dòng),實(shí)際上也是 API 的消費(fèi)者。

通過(guò)首先設(shè)計(jì) API,可以在編寫(xiě)代碼之前促進(jìn)與利益相關(guān)者(內(nèi)部團(tuán)隊(duì)、客戶(hù)及其他使用 API 的團(tuán)隊(duì))的討論。這種協(xié)作有助于構(gòu)建用戶(hù)故事、模擬 API 并生成文檔,以進(jìn)一步明確服務(wù)的意圖和功能。

這些討論和測(cè)試可用來(lái)審查方向和計(jì)劃,而不需在支持特定 API 的管道上投入過(guò)多。

如今,有無(wú)數(shù)工具和標(biāo)準(zhǔn)支持 API 優(yōu)先開(kāi)發(fā),API 規(guī)范使用類(lèi)似 Markdown 的語(yǔ)法(如 API Blueprint 或 Swagger)。這些格式可用于生成文檔甚至 REST API 服務(wù)器模擬,在測(cè)試服務(wù)生態(tài)系統(tǒng)中非常寶貴。

因此,絕對(duì)沒(méi)有理由認(rèn)為 API 優(yōu)先是一條困難或不受支持的道路。這種模式適用于非云軟件開(kāi)發(fā),但特別適合云開(kāi)發(fā),因?yàn)樗С挚焖僭驮O(shè)計(jì)、服務(wù)生態(tài)系統(tǒng)和自動(dòng)化部署測(cè)試。

這種模式是合同優(yōu)先開(kāi)發(fā)的延伸,開(kāi)發(fā)人員首先專(zhuān)注于構(gòu)建應(yīng)用程序的邊緣或接縫。通過(guò) CI 服務(wù)器不斷測(cè)試集成點(diǎn),團(tuán)隊(duì)可以獨(dú)立處理服務(wù),并保持正常工作的合理保證。

API 優(yōu)先將組織從瀑布式、精心設(shè)計(jì)的系統(tǒng)中解放出來(lái),允許產(chǎn)品演變?yōu)橛袡C(jī)的、自組織的生態(tài)系統(tǒng),能夠不斷發(fā)展以應(yīng)對(duì)新的和不可預(yù)見(jiàn)的需求。

概括

構(gòu)建一個(gè)緊密耦合的整體系統(tǒng)會(huì)限制適應(yīng)新需求或支持新消費(fèi)者的能力。而采用 API 優(yōu)先的心態(tài),可以將所有應(yīng)用程序視為支持服務(wù),從而使系統(tǒng)自由增長(zhǎng),適應(yīng)新的負(fù)載和需求,容納新消費(fèi)者,而無(wú)需重建封閉系統(tǒng)。這種 API 優(yōu)先的生活方式能夠帶來(lái)顯著的投資回報(bào)。

原文鏈接:An API-First Development Approach

上一篇:

深入探討API主導(dǎo)架構(gòu)方法及實(shí)現(xiàn)模式

下一篇:

從日志到洞察:為什么API分析優(yōu)于簡(jiǎn)單的日志可視化
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)