如何通俗地解釋API?


看過電視不?遙控器就是UI,電視機背後那些讓你插DVD、衛星天線的小洞洞就是API。


正常的用戶介面(UI)是零售, 面向普通用戶; API是批發渠道, 面向企業/團體/大客戶, 他們拿到你的商品後, 可能會進行整合/再包裝什麼的.


通俗的說就是「食品」和「食材」的關係。

舉個栗子:

新浪微博如果是一個漢堡(就當他是開封菜的雞肉漢堡吧),那用到的食材就是「麵包、雞肉、一些青菜、醬料」。把這些食材提供出來供人加工的過程,就類似以API方式提供訪問。然後有某人就利用麵包+青菜+醬料的組合做出了三明治(某些企業微博應用);某人用雞肉做出了炸雞排(某些社交搜索);甚至某人用雞肉+花生+胡蘿蔔做了個宮保雞丁(某寶的一堆廣告)。

如果以上提到的食物你都吃過,那估計你現在已經明白了。

說到這已經有點餓了,弄點吃的吧先~


第三方介面,簡單說,就是允許其他應用開發者調用該API允許調用的平台資源,比如說好友關係、發微博功能等等。


可以理解為每個API就是個按鈕,點擊後可以獲得你想要的結果;比如淘寶的商品API,你點一下按鈕,你就可以獲得這個商品的全部信息,而無需知道這個商品信息在點擊按鈕後是怎麼從淘寶上獲得的!


API之於計算機,就像一個可操作的網站之於人類。

比如你現在想要把知乎上的一篇文章分享到微博,你會點擊文章下方的「分享」,這個過程中,計算機通過微博API,來完成它的工作。(其實這個過程從你用微博賬號登陸知乎就已經開始了)

網站一般被設計為各種各樣的圖形界面,最終目的是使人類可以讀取、操作數字信息,與之類似,API使計算機可以讀取、操作數字信息。參照下圖:

APIs (application programming interfaces),即應用程序編程介面。API由伺服器(Server)提供(伺服器有各種各樣的類型,一般我們瀏覽網頁用到的是web server,即網路伺服器),通過API,計算機可以讀取、編輯網站數據,就像人類可以載入網頁、提交信息等。這裡用來舉例的「網站」,廣義可理解為我們現在所提的「客戶端(Client)」。

因此,要知道API的概念和作用,了解這三個詞就OK:

  • 伺服器:提供API的一台功能強大的計算機

  • API:一個網站中用於計算機讀取的部分

  • 客戶端:通過API與伺服器交換數據的程序

實例有很多,API可以用來做各種各樣的事情, 贊 @汪威 的答案~

另外,圖片來自An Introduction to APIs 這是個介紹API的很好的小教程,8個章節深入淺出,適合小白。


api可以理解為家用電器的插頭,用戶只提供插座,並執行將插頭插入插座的行為,不需要考慮電器內部如何運作。

洗衣機應用程序具備浸泡、漂洗、甩乾等功能(function),整體封裝起來,調用洗衣機api就能把臟衣服(初值)變成乾淨衣服(返回值)。

微博提供獲取用戶信息、返回top10熱評等api,無需源碼就能通過api對應url得到頁面內容。


看看你的主機和顯示器,再想想這個

圖片來自網路


應用程序對話的工具


如果操作系統是一台汽車,api就是鑰匙,方向盤,剎車,離合,儀錶盤等。


推薦閱讀:

Android 6.0(Marshmallow)正式發布,怎樣解讀 API 的新變化?
零基礎如何自學編程?
在人群中高喊 『OK, Google』 是一種怎樣的體驗?
韓系旗艦 三星S6 系列 和 LG G4,如何對比?是否值得入手?

TAG:API | 編程 | iOS開發 | 計算機科學 | Android |