?
API,即應(yīng)用程序接口(Application Programming Interface),它搭建起了程序間交流的橋梁,讓不同應(yīng)用程序能夠順暢地互相調(diào)用、共享數(shù)據(jù)。有了API,開發(fā)者就能更便捷地運(yùn)用其他開發(fā)者編寫的軟件功能,大大提升開發(fā)效率。
API的實(shí)現(xiàn)技術(shù)多種多樣,常見的有Web API、SOAP API、REST API等。Web API通常基于HTTP/HTTPS協(xié)議,通過URL就能輕松訪問和調(diào)用;SOAP API是基于XML的Web服務(wù)協(xié)議,借助SOAP消息進(jìn)行通信;而REST API作為基于HTTP協(xié)議的輕量級(jí)Web服務(wù)協(xié)議,無需SOAP消息,僅用簡單的HTTP方法就能傳遞數(shù)據(jù)。
有關(guān)API的數(shù)據(jù)
近年來,API的使用量呈現(xiàn)出爆發(fā)式增長。自2007年起,其使用量已激增13倍。像Google、Facebook和Twitter這類知名應(yīng)用,每天因API被調(diào)用的次數(shù)高達(dá)約50 - 100億次。再看Netflix,它持續(xù)借助API向200臺(tái)設(shè)備傳輸數(shù)據(jù)流,為用戶帶來流暢的觀看體驗(yàn)。
API的調(diào)用流程
當(dāng)我們使用應(yīng)用程序的某項(xiàng)功能時(shí),后臺(tái)其實(shí)在進(jìn)行著一系列操作:首先,數(shù)據(jù)請(qǐng)求被發(fā)送至服務(wù)器;服務(wù)器對(duì)請(qǐng)求進(jìn)行解析,弄清楚請(qǐng)求意圖;接著,服務(wù)器給出必要響應(yīng);最后,響應(yīng)成功返回設(shè)備。每次我們要求應(yīng)用程序提供特定服務(wù)響應(yīng)時(shí),這個(gè)過程都會(huì)重復(fù)上演。
不同的API協(xié)議和架構(gòu)
- REST:在眾多API架構(gòu)中,表述性狀態(tài)轉(zhuǎn)移(Representational State Transfer)備受青睞。REST API以客戶機(jī)與服務(wù)器的方式,將前端與后端清晰區(qū)分,且不存儲(chǔ)任何數(shù)據(jù)或狀態(tài)。
- SOAP:簡單對(duì)象訪問協(xié)議(Simple Object Access Protocol)在通過XML創(chuàng)建Web API的場景中應(yīng)用廣泛。它能兼容HTTP、TCP和SMTP等常見互聯(lián)網(wǎng)通信協(xié)議,易于擴(kuò)展,方便開發(fā)者編寫和添加新功能。與其他架構(gòu)相比,SOAP具有高度結(jié)構(gòu)化、嚴(yán)格可控性以及明確定義標(biāo)準(zhǔn)等特性。
- RPC:遠(yuǎn)程過程調(diào)用(remote procedural call)可用于調(diào)用各種可執(zhí)行操作,非常適合發(fā)送參數(shù)并接收相應(yīng)響應(yīng)。
API的類型
根據(jù)訪問級(jí)別和使用范圍,API可分為以下幾類,開發(fā)人員可按需選擇。
- 伙伴API:此類API的數(shù)據(jù)訪問權(quán)限僅限于擁有官方許可證的授權(quán)客戶端,即只有與提供API的公司有業(yè)務(wù)關(guān)系的調(diào)用方才能使用。開發(fā)方對(duì)資源訪問者有較大控制權(quán)?;锇锳PI的優(yōu)勢顯著,業(yè)務(wù)方可專注于公司核心與發(fā)展,無需遷就開發(fā)人員。若一個(gè)開發(fā)人員遇到難題,其他開發(fā)人員可輕松解決。保留伙伴API政策有助于集成大量電商軟件的不同解決方案,使軟件在瞬息萬變的行業(yè)中保持領(lǐng)先。
- 公共API:顧名思義,公共API可供任何外部開發(fā)人員或企業(yè)使用。對(duì)于與公眾和其他業(yè)務(wù)組織共享應(yīng)用和數(shù)據(jù)的業(yè)務(wù)結(jié)構(gòu)而言,公共API是理想之選。它不僅容易實(shí)現(xiàn),還能保證用戶只要有互聯(lián)網(wǎng)連接,就能隨時(shí)隨地使用應(yīng)用服務(wù)。
- 內(nèi)部API:內(nèi)部或私有API通常僅限企業(yè)在其業(yè)務(wù)內(nèi)部連接和訪問數(shù)據(jù)。不過,其安全性和身份驗(yàn)證能力相對(duì)較弱,容易導(dǎo)致數(shù)據(jù)安全威脅,開發(fā)者需逐步加強(qiáng)安全部署。內(nèi)部API能將業(yè)務(wù)的不同部分連接起來,提高開發(fā)過程的適應(yīng)性和靈活性,讓開發(fā)人員在較短時(shí)間內(nèi)制定和構(gòu)建新的關(guān)聯(lián)應(yīng)用。
- 復(fù)合API:復(fù)合API通常是兩到多種API的混合體,集各類API之長,能帶來更高的速度、更大的靈活性和更好的性能。它能在單個(gè)調(diào)出(callout)中執(zhí)行多項(xiàng)操作,所需數(shù)據(jù)位于調(diào)用序列末端,無需解析各種響應(yīng),因此比其他API更受歡迎。
API的工作原理
每個(gè)API都通過函數(shù)調(diào)用實(shí)現(xiàn),函數(shù)調(diào)用的主要任務(wù)是請(qǐng)求軟件執(zhí)行特定操作和函數(shù)。當(dāng)用戶啟動(dòng)API調(diào)用時(shí),它會(huì)通知應(yīng)用程序啟用與Web服務(wù)器通信并執(zhí)行相應(yīng)任務(wù)。具體來說,每當(dāng)用戶指示軟件執(zhí)行任務(wù)或請(qǐng)求信息時(shí),API就充當(dāng)應(yīng)用程序和Web服務(wù)器之間的“橋梁”。像我們?nèi)粘I钪惺褂玫腇acebook登錄、PayPal支付、Google天氣查詢等,都是API的典型應(yīng)用。
API開發(fā)的工具
API旨在簡化和加速軟件開發(fā),正所謂“工欲善其事,必先利其器”,下面介紹三種常見的API開發(fā)工具:
- Sandbox:作為一種簡單的模擬RESTful API,它能有效降低測試過程中第三方API調(diào)用的成本。
- Apigee:由Google推出的Apigee是構(gòu)建應(yīng)用連接的理想工具,可促進(jìn)應(yīng)用程序和服務(wù)之間的數(shù)據(jù)傳輸。
- APIMatic:對(duì)于網(wǎng)站的各類API,APIMatic以平臺(tái)形式方便開發(fā)人員靈活維護(hù)API更新。同時(shí),它還允許開發(fā)人員將API描述并轉(zhuǎn)換成WADL、Swagger、RAML、OAI格式、IO文檔、API藍(lán)圖、har1.4以及Postman集合等多種形式。
API的構(gòu)建實(shí)踐
API的構(gòu)建實(shí)踐主要體現(xiàn)在以下五個(gè)方面:
- 安全性:采用基于令牌的身份驗(yàn)證是構(gòu)建安全可靠API的良好實(shí)踐,既保證了安全性,又兼顧了用戶友好性。
- 文件:精心編撰的API文檔能降低項(xiàng)目開發(fā)成本,提高應(yīng)用運(yùn)行效率和實(shí)現(xiàn)時(shí)間。應(yīng)用程序開發(fā)人員需要借助豐富的API支持文檔,詳細(xì)了解整個(gè)調(diào)用與實(shí)現(xiàn)過程。
- 節(jié)流:在需要重定向流量溢出、防止DoS(拒絕服務(wù))以及備份各種API時(shí),應(yīng)用節(jié)流能有效實(shí)現(xiàn)這些目的。
- SDK和代碼庫:為開發(fā)團(tuán)隊(duì)提供必要的庫資源,可加速開發(fā)進(jìn)程。
- 重寫HTTP方法:由于一些代理只能支持POST和GET方法,使用定制的HTTP報(bào)頭X - HTTP - Method - Override,能讓RESTful API重寫HTTP方法。
小結(jié)
從Node.js到PHP與ASP.Net的Web開發(fā),無論是簡單的Python開發(fā),還是復(fù)雜的Java軟件,API在各項(xiàng)技術(shù)中都得到了廣泛應(yīng)用,為從開發(fā)到業(yè)務(wù)的協(xié)作鋪平了道路。只要我們根據(jù)實(shí)際業(yè)務(wù)需求,合理構(gòu)建或修改API,就能填補(bǔ)異構(gòu)數(shù)字技術(shù)之間的鴻溝,提高應(yīng)用服務(wù)的調(diào)用效率,為業(yè)務(wù)帶來更豐厚的利潤,歡迎各位大佬交流互動(dòng) 小編必回
?