API 優(yōu)先并非曇花一現(xiàn)。毫無疑問,API 優(yōu)先方法正在興起,因?yàn)樵絹碓蕉嗟墓驹噲D利用基于 API 的軟件消費(fèi)模型的可重用性、自助服務(wù)和網(wǎng)絡(luò)效應(yīng)。但 API 優(yōu)先到底是什么?API 優(yōu)先開發(fā)又意味著什么?
我們可以從兩個(gè)角度來思考API-first:技術(shù)和業(yè)務(wù)。從技術(shù)角度來看,API-first 很像它的名字。您無需直接編寫代碼或設(shè)計(jì)應(yīng)用程序和用戶界面,而是首先建立微服務(wù)之間的連接組織。API-first 開發(fā)將 API 及其使用模型的創(chuàng)建置于其他重點(diǎn)之前。
有了 API 基礎(chǔ),您可以更輕松地支持多個(gè)平臺(tái),例如 Web、iOS、Android 或 IoT。您還可以組合來自多個(gè)底層 API 的數(shù)據(jù)來創(chuàng)建各種前端用戶體驗(yàn)。為了實(shí)施API 優(yōu)先開發(fā),團(tuán)隊(duì)通常會(huì)使用共享樣式指南、標(biāo)準(zhǔn)規(guī)范和相關(guān)工具來確保整個(gè)組織的技術(shù)堆棧的一致性。
但 API 優(yōu)先不僅僅在內(nèi)部微服務(wù)中流行。在業(yè)務(wù)方面,API 優(yōu)先正在成為整個(gè)公司賴以生存的常見(和流行)模式。作為證據(jù),截至第三季度, GGV Capitol 的API 優(yōu)先指數(shù)追蹤了 60 多家籌集了 5000 萬美元或更多資金的 API 優(yōu)先公司,總?cè)谫Y額達(dá) 140 億美元。這類新的API 即產(chǎn)品公司,如 Stripe、Twilio、AssemblyAI、Shippo等,本質(zhì)上都是 API 優(yōu)先的,并將開發(fā)人員作為其第一消費(fèi)者。
在我們的API-First LiveCast上,我們邀請(qǐng)了兩位專家演講者深入探討 API-first 的含義。下面,我們將回顧此次活動(dòng)的主要內(nèi)容,以了解如何在您的組織內(nèi)接受 API-first 思維方式。
對(duì)于2022 年 API 狀態(tài)報(bào)告,Postman 詢問了 37,000 多名開發(fā)人員和 API 專業(yè)人員的 API 習(xí)慣和偏好。當(dāng)被要求定義“API 優(yōu)先”時(shí),最受歡迎的回答是:“在開始開發(fā)之前定義和設(shè)計(jì) API 和架構(gòu)。”報(bào)告發(fā)現(xiàn),這個(gè)答案是 API 優(yōu)先領(lǐng)導(dǎo)者中最常見的選擇。
Postman 開發(fā)者關(guān)系主管 Joyce Lin 很快強(qiáng)調(diào)了上述定義中的架構(gòu)方面。API 優(yōu)先不僅與代碼優(yōu)先相反,而且 API 優(yōu)先實(shí)際上意味著架構(gòu)驅(qū)動(dòng)。流行的 API 規(guī)范(例如 OpenAPI v2、OpenAPI v3、JSON Schema和GraphQL)可用于實(shí)現(xiàn)這種架構(gòu)驅(qū)動(dòng)的開發(fā)路徑。“架構(gòu)就像一份 API 合同,因此您可以體驗(yàn)設(shè)計(jì)優(yōu)勢(shì)并在生產(chǎn)者和消費(fèi)者之間達(dá)成協(xié)議,”Lin 說。
Lin 承認(rèn),市場上有許多 API-first 的版本,成熟度從 API-last 到原型優(yōu)先、設(shè)計(jì)優(yōu)先和架構(gòu)優(yōu)先不等。架構(gòu)優(yōu)先設(shè)計(jì)將設(shè)計(jì)優(yōu)先更進(jìn)一步,可以說是 API-first 連續(xù)體中最成熟的演進(jìn)。Lin 描述說,有了這個(gè)契約,消費(fèi)者可以信任它來構(gòu)建他們的集成。她描述說,擁有單一事實(shí)來源的最終好處是更早的反饋、降低開發(fā)成本、加快開發(fā)時(shí)間和增長,以及更具彈性的 API。“API 契約是 API-first 的最大標(biāo)志之一。”
現(xiàn)在,我們已經(jīng)簡要了解了以 API 優(yōu)先方式進(jìn)行開發(fā)的含義,那么構(gòu)建 API 優(yōu)先業(yè)務(wù)是什么樣子的呢?平臺(tái)如何才能成功做到這一點(diǎn)?TravelTime 首席執(zhí)行官 Charlie Davies 分享了他對(duì)采用 API 優(yōu)先思維方式的看法。對(duì)于 Davies 來說,API 優(yōu)先意味著改進(jìn)他們的營銷工作、磨練開發(fā)人員的經(jīng)驗(yàn),也許最重要的是——學(xué)會(huì)何時(shí)說“不”。
保持 API 的利基意味著意識(shí)到它們不是端到端的解決方案。正如 Davies 在Nordic API 上的一篇博客文章中所分享的那樣,他的團(tuán)隊(duì)犯下的最大錯(cuò)誤之一就是定位問題。
TravelTime 最初的定位是推出定制環(huán)境,根據(jù)每個(gè)客戶更改 API 規(guī)范,并反復(fù)與客戶溝通以滿足他們的需求。雖然這種定制工作對(duì)于公司早期的建立至關(guān)重要,但從長遠(yuǎn)來看,它并不具備可擴(kuò)展性。“我們很快意識(shí)到,我們需要做出一些決定。我們面臨規(guī)模問題,”戴維斯說。“我們賣的是建筑,而不是磚塊。”
TravelTime 發(fā)現(xiàn),通過調(diào)整營銷材料來宣傳“實(shí)體店”,他們可以吸引更多客戶。令人印象深刻的是,當(dāng)主頁上的文案強(qiáng)調(diào) API 優(yōu)先時(shí),他們的客戶量增長了 93%。“我們現(xiàn)在知道了我們的局限性——我們是 API 專家,”戴維斯說。
在設(shè)計(jì)階段盡早構(gòu)建 API 可以為企業(yè)帶來諸多好處。例如,鼓勵(lì)使用通用接口可以使您的服務(wù)本質(zhì)上更具可重用性。通過將消費(fèi)模式置于其他因素之前,您可以顯著改善開發(fā)人員的體驗(yàn),使您的應(yīng)用程序更易于發(fā)現(xiàn)和構(gòu)建。
貝索斯的命令之所以能達(dá)到如此神話般的地位是有原因的。就像它幫助亞馬遜一樣,如果一家公司決定向選定的合作伙伴或更廣泛的公眾開放微服務(wù),將 API 放在首位可以促進(jìn)軟件開發(fā)并有利于外部化工作。強(qiáng)調(diào)設(shè)計(jì)優(yōu)先的方法還可以從一開始就提高一致性,因?yàn)槟鸀殚_發(fā)人員提供了更多的保護(hù)。API 優(yōu)先提供了添加或刪除功能的更大靈活性,并且符合敏捷開發(fā)原則。
當(dāng)然,任何方法都有其缺點(diǎn)。采用 API 優(yōu)先方法也面臨一些挑戰(zhàn)。首先,它確實(shí)需要重大的文化變革,而且你確實(shí)需要整個(gè)組織的支持才能讓它值得你這么做。這可能需要一些準(zhǔn)備時(shí)間才能實(shí)施。
其次,這種方法意味著要對(duì)開發(fā)人員文檔投入更多,因?yàn)椤拔臋n就是產(chǎn)品”,戴維斯說。就這一點(diǎn)而言,API 優(yōu)先的公司不應(yīng)該過多地規(guī)定服務(wù)的使用方式。產(chǎn)品必須吸引許多潛在的用例,并且能夠被不同類型的用戶理解,無論他們是開發(fā)人員、架構(gòu)師、首席技術(shù)官還是產(chǎn)品經(jīng)理。因此,完善開發(fā)人員文檔和支持材料可能是一個(gè)持續(xù)的平衡行為。
此外,正如 Lin 所說,API 優(yōu)先確實(shí)需要抽象思維和架構(gòu)規(guī)劃,這是代碼之外的一步。您必須考慮其他工程師可能希望如何訪問您的資源。這種思維違背了代碼優(yōu)先的快速完成任務(wù)的心態(tài)。API 優(yōu)先也可能是對(duì)通常的開發(fā)工作流程的重大改變,并且您可能正在處理不是以這種風(fēng)格構(gòu)建的遺留技術(shù)。這可能導(dǎo)致必須重新實(shí)現(xiàn)許多技術(shù),就像Etsy的情況一樣。
Lin 表示:“每個(gè)人的 API優(yōu)先之路從來都不是一帆風(fēng)順的——它始終是一個(gè)持續(xù)而反復(fù)的過程。” Postman 的首席布道師兼Breaking Changes播客主持人 Kin Lane 指出,歸根結(jié)底,人們更關(guān)心 API 規(guī)范所帶來的結(jié)果,而不是確切的技術(shù)流程。因此,雖然明確定義“純 API 優(yōu)先方法”是什么樣子及其好處很有幫助,但承認(rèn) API 優(yōu)先是一個(gè)連續(xù)體這一現(xiàn)實(shí)也是有益的,組織在不同的地方發(fā)揮作用。
API 優(yōu)先能帶來真正的幸福嗎?事實(shí)上,75% 的 API 優(yōu)先公司開發(fā)人員表示自己更快樂。事實(shí)證明,保持軟件開發(fā)團(tuán)隊(duì)的高昂士氣可以積極影響生產(chǎn)力并減少倦怠和人員流失。因此,您可以說采用 API 優(yōu)先是開發(fā)人員優(yōu)先的決定。因此,請(qǐng)將 API 優(yōu)先視為一種手段,為您的工程師提供他們所需的工具和經(jīng)驗(yàn),以實(shí)現(xiàn)更輕松的集成和更敏捷的應(yīng)用程序開發(fā)。
本文翻譯源自:https://nordicapis.com/what-it-means-to-go-api-first/