自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

您需要知道的API基礎(chǔ)知識(shí)都在這里

譯文 精選
開(kāi)發(fā) 前端
本文向您介紹了API的基本調(diào)用流程、工作原理、不同的架構(gòu)、類(lèi)型、開(kāi)發(fā)工具、以及構(gòu)建實(shí)踐。

?譯者 | 陳峻

審校 | 孫淑娟

API是應(yīng)用程序編程接口(Application Programming Interface)的縮寫(xiě),能夠起到兩個(gè)軟件組件之間的連接器或中介的作用。此類(lèi)接口往往通過(guò)一組明確的協(xié)議,來(lái)表示各種原始的請(qǐng)求和響應(yīng)。API文檔可以向開(kāi)發(fā)人員展示請(qǐng)求和響應(yīng)是如何形成的。簡(jiǎn)單而言,API能夠允許兩個(gè)應(yīng)用程序彼此之間實(shí)現(xiàn)通信。無(wú)論我們?cè)谑謾C(jī)上查看天氣,還是使用微信,或者在Facebook等應(yīng)用上收發(fā)消息,都會(huì)頻繁地使用到API。

有關(guān)API的數(shù)據(jù)

  • 自2007年以來(lái),API的使用量已增加了13倍
  • 得益于API,Google、Facebook和Twitter等知名應(yīng)用,每天都會(huì)被調(diào)用約50-100億次
  • Netflix持續(xù)使用API向200臺(tái)設(shè)備傳輸數(shù)據(jù)流

API的調(diào)用流程

當(dāng)我們?cè)谑褂脩?yīng)用程序的某項(xiàng)功能時(shí),通常會(huì)在后臺(tái)發(fā)生如下情況:

  1. 數(shù)據(jù)請(qǐng)求被發(fā)送到服務(wù)器上
  2. 服務(wù)器對(duì)其進(jìn)行解析,并理解其請(qǐng)求的含義
  3. 服務(wù)器提供必要的響應(yīng)
  4. 響應(yīng)被成功地發(fā)送回設(shè)備

其實(shí),每次在我們要求應(yīng)用程序提供某些特定的服務(wù)響應(yīng)時(shí),這樣的過(guò)程都會(huì)重復(fù)循環(huán)一次。

不同的API協(xié)議和架構(gòu)

  • REST:在眾多的API架構(gòu)類(lèi)型中,表述性狀態(tài)轉(zhuǎn)移(Representational State Transfer)往往被廣為采用。REST API的工作原理是以客戶(hù)機(jī)與服務(wù)器的方式,將API的前端與后端區(qū)分開(kāi)來(lái)。而且它不會(huì)存儲(chǔ)任何數(shù)據(jù)或狀態(tài)。
  • SOAP:簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議(Simple Object Access Protocol)也被廣泛用于通過(guò)XML創(chuàng)建Web API的場(chǎng)景中。它能夠兼容諸如:HTTP、TCP和SMTP等互聯(lián)網(wǎng)常見(jiàn)的通信協(xié)議。由于SOAP易于被擴(kuò)展,因此開(kāi)發(fā)者能夠很容易地用它來(lái)編寫(xiě)和添加新的功能。與其他架構(gòu)相比,SOAP具有高度結(jié)構(gòu)化、嚴(yán)格可控性、以及具有被明確定義的標(biāo)準(zhǔn)等特性。
  • RPC:遠(yuǎn)程過(guò)程調(diào)用(remote procedural call)能夠被用來(lái)調(diào)用各種可執(zhí)行的操作。它非常適合于發(fā)送各種參數(shù),以及接收各種相應(yīng)的響應(yīng)。

API的類(lèi)型

根據(jù)訪(fǎng)問(wèn)級(jí)別和使用范圍的不同,API往往可以被分為如下不同的類(lèi)型。開(kāi)發(fā)人員可以根據(jù)自己的要求,進(jìn)行適當(dāng)?shù)剡x擇。 

A、伙伴API

在此類(lèi)API中,對(duì)于數(shù)據(jù)的訪(fǎng)問(wèn),僅限于那些擁有官方許可證的授權(quán)客戶(hù)端。也就是說(shuō),只有那些與提供API的公司有業(yè)務(wù)關(guān)系的調(diào)用方,才能使用此類(lèi)API。開(kāi)發(fā)方對(duì)于誰(shuí)可以訪(fǎng)問(wèn)這些資源,有著較大的控制權(quán)。

伙伴API的優(yōu)勢(shì):

  • 業(yè)務(wù)方可以把更多的注意力放在公司的核心與發(fā)展上,而無(wú)需遷就開(kāi)發(fā)人員。如果一個(gè)開(kāi)發(fā)人員覺(jué)得某個(gè)問(wèn)題難以被解決,則可以由另一個(gè)開(kāi)發(fā)人員去輕松地搞定。這便是伙伴合作給項(xiàng)目帶來(lái)的好處。
  • 保留伙伴API政策將有助于集成大量電商軟件的不同解決方案,并使得軟件能夠在瞬息萬(wàn)變的行業(yè)中保持最新和強(qiáng)相關(guān)。

B、公共API

顧名思義,公共API可供任何外部開(kāi)發(fā)人員或企業(yè)使用。對(duì)于那些與公眾和其他業(yè)務(wù)組織共享應(yīng)用和數(shù)據(jù)的業(yè)務(wù)結(jié)構(gòu)來(lái)說(shuō),Public API是理想的選擇。

公共API的優(yōu)勢(shì):

公共API不但容易實(shí)現(xiàn),而且能夠保證用戶(hù)只要有互聯(lián)網(wǎng)連接,就能隨時(shí)隨地使用應(yīng)用服務(wù)。

C、內(nèi)部API

內(nèi)部或私有API往往只能讓企業(yè)在其業(yè)務(wù)內(nèi)部連接和訪(fǎng)問(wèn)數(shù)據(jù)。由于內(nèi)部API的安全性和身份驗(yàn)證能力相對(duì)較弱,因此容易導(dǎo)致數(shù)據(jù)受到安全威脅。對(duì)此,開(kāi)發(fā)者需要逐漸改變它們?cè)诎踩系母鞣N部署與安排。

內(nèi)部API的優(yōu)勢(shì):

由于內(nèi)部API能夠?qū)I(yè)務(wù)的不同部分連接起來(lái),以提高開(kāi)發(fā)過(guò)程中的適應(yīng)性和靈活性,因此此類(lèi)API可以讓開(kāi)發(fā)人員在較短的時(shí)間內(nèi),制定和構(gòu)建新的關(guān)聯(lián)應(yīng)用。

D、復(fù)合API

復(fù)合API通常是兩到多種API的混合體。由于集成了各類(lèi)API的長(zhǎng)處,因此它往往能夠帶來(lái)更高的速度、更大的靈活性、以及更好的性能。

復(fù)合API的優(yōu)勢(shì):

復(fù)合API能夠在單個(gè)調(diào)出(callout)中執(zhí)行多項(xiàng)操作。而且其所需的數(shù)據(jù)位于調(diào)用序列的末端,而無(wú)需解析各種響應(yīng)。因此,它比其他API更受歡迎。

API的工作原理

每個(gè)API都是由函數(shù)的調(diào)用來(lái)實(shí)現(xiàn)的。而函數(shù)調(diào)用的任務(wù)主要是請(qǐng)求軟件去執(zhí)行某些特定的操作和函數(shù)。當(dāng)用戶(hù)啟動(dòng)API的調(diào)用時(shí),它會(huì)通知應(yīng)用程序去啟用API與Web服務(wù)器通信,并執(zhí)行相應(yīng)的任務(wù)。具體而言,每當(dāng)用戶(hù)指示軟件去執(zhí)行某些任務(wù)、或請(qǐng)求某種信息時(shí),API會(huì)以應(yīng)用程序和Web服務(wù)器之間的“橋梁”身份去實(shí)現(xiàn)。正如前文所說(shuō),我們?cè)谌粘I钪惺褂玫降?,諸如:Facebook登錄、PayPal支付、以及Google天氣查詢(xún)等,都是API的典型示例。您可以通過(guò)鏈接-- https://nordicapis.com/5-examples-of-apis-we-use-in-our-everyday-lives/,了解其更多的應(yīng)用場(chǎng)景。

API開(kāi)發(fā)的工具

既然API的任務(wù)是簡(jiǎn)化和加速軟件的開(kāi)發(fā),那么正所謂“工欲善其事,必先利其器”,讓我們來(lái)看看三種常見(jiàn)的API開(kāi)發(fā)工具: 

  • Sandbox:作為一種簡(jiǎn)單的模擬RESTful API,它主要能夠降低測(cè)試過(guò)程中第三方API調(diào)用的成本。 
  • Apigee:作為構(gòu)建應(yīng)用連接的理想工具,由Google推出的Apigee可以促進(jìn)應(yīng)用程序和服務(wù)之間的數(shù)據(jù)傳輸。
  • APIMatic:對(duì)于網(wǎng)站的各種API而言,APIMatic以平臺(tái)的形式,方便開(kāi)發(fā)人員更加靈活地維護(hù)API的各種更新。同時(shí),它也允許開(kāi)發(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è)方面:

  1. 安全性:使用基于令牌的身份驗(yàn)證,是構(gòu)建安全可靠的API的良好實(shí)踐。它既保證了安全性,又兼顧了用戶(hù)友好性。
  2. 文件:精心編撰的API文檔不但能夠降低項(xiàng)目的開(kāi)發(fā)成本,而且可以提高應(yīng)用的運(yùn)行效率和實(shí)現(xiàn)時(shí)間。應(yīng)用程序開(kāi)發(fā)人員往往需要通過(guò)豐富的API支持文檔,來(lái)詳細(xì)地了解整個(gè)調(diào)用與實(shí)現(xiàn)過(guò)程。
  3. 節(jié)流:當(dāng)涉及到需要重定向流量的溢出、防止DoS(拒絕服務(wù))、以及備份各種API時(shí),我們往往需要通過(guò)應(yīng)用的節(jié)流,來(lái)有效地實(shí)現(xiàn)此類(lèi)目的。
  4. SDK和代碼庫(kù):通過(guò)向開(kāi)發(fā)團(tuán)隊(duì)提供必要的庫(kù)資源,我們可以加速開(kāi)發(fā)的進(jìn)程。
  5. 重寫(xiě)HTTP方法:由于一些代理只能支持POST和GET方法,因此我們使用定制的HTTP報(bào)頭X-HTTP-Method-Override,能夠允許RESTful API去重寫(xiě)HTTP的方法。

小結(jié)

從Node.js到PHP與ASP.Net的Web開(kāi)發(fā),無(wú)論是簡(jiǎn)單的Python開(kāi)發(fā)、還是復(fù)雜的Java軟件,API在每一項(xiàng)技術(shù)中都得到了廣泛的使用,都能夠?yàn)閺拈_(kāi)發(fā)到業(yè)務(wù)的協(xié)作鋪平道路。只要我們能夠根據(jù)自己的實(shí)際業(yè)務(wù)需求,合理地構(gòu)建或修改API,就能夠填補(bǔ)異構(gòu)數(shù)字技術(shù)之間的鴻溝,提高應(yīng)用服務(wù)的調(diào)用效率,進(jìn)而為業(yè)務(wù)帶來(lái)更豐厚的利潤(rùn)。

譯者介紹

陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對(duì)內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專(zhuān)注傳播網(wǎng)絡(luò)與信息安全知識(shí)與經(jīng)驗(yàn)。

原文標(biāo)題:??Everything You Should Know About APIs???,作者:Himanshu Mehra?

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2020-12-23 09:00:00

開(kāi)發(fā)Web工具

2021-12-09 08:16:40

JVM參數(shù)系統(tǒng)

2017-08-29 11:21:03

微軟

2020-06-02 07:00:00

會(huì)話(huà)安全黑客攻擊

2021-12-27 08:00:00

Kubernetes容器安全

2021-05-17 07:04:07

動(dòng)態(tài)代理面試

2019-09-10 13:38:56

人工智能無(wú)人駕駛機(jī)器人

2021-07-01 09:00:00

安全數(shù)字化轉(zhuǎn)型滲透

2020-08-12 09:32:31

小米MIUI

2023-09-11 08:51:23

LinkedList雙向鏈表線(xiàn)程

2021-06-17 13:40:47

區(qū)塊鏈比特幣公有鏈

2019-11-04 09:07:48

DevOps互聯(lián)網(wǎng)IT

2021-02-01 08:39:26

JTAG接口Jlink

2019-04-24 08:31:43

分布式限流kafka

2020-03-18 18:20:19

區(qū)塊鏈數(shù)字貨幣比特幣

2019-01-24 08:19:17

云服務(wù)多云云計(jì)算

2016-03-01 16:14:32

問(wèn)問(wèn)應(yīng)用商店Android Wea

2018-11-28 10:39:01

5G網(wǎng)絡(luò)運(yùn)營(yíng)商

2021-02-23 09:28:48

大數(shù)據(jù)數(shù)據(jù)分析

2018-04-26 16:15:02

數(shù)據(jù)庫(kù)MySQLMySQL 8.0
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)