如何通俗理解API?

前言


API聽起來既熟悉又陌生。我經常聽說這個術語,但具體的含義又不是特殊清楚,對這個相當普遍的術語有一個相當模糊或不正確的理解。從技術上講,API代表應用程序編程接口。在某種程度上,大多數大公司已經為他們的客戶或內部使用構建了API。

但是如何用簡單的語言解釋API呢?還有什麼比在開發和商業中使用的更廣泛的含義嗎?首先,讓我們回過頭來看看web本身是如何工作的。


如何通俗理解API?


WWW和遠程服務器


當我想到Web時,我想到的是一個由連接的服務器組成的大型網絡。internet上的每個頁面都存儲在遠程服務器的某個地方。畢竟,遠程服務器並不是那麼神秘——它只是遠程定位計算機的一部分,經過優化可以處理請求。從長遠來看,你可以在你的筆記本電腦上啟動一個服務器,它可以為整個網站提供網絡服務(事實上,工程師們在向公眾發佈網站之前會使用一個本地服務器來開發網站)。


當你在瀏覽器中輸入www.facebook.com時,一個請求會發送到Facebook的遠程服務器。一旦您的瀏覽器接收到響應,它將解釋代碼並顯示頁面。對於瀏覽器(也稱為客戶機),Facebook的服務器是一個API。這意味著每次訪問Web上的頁面時,都要與某個遠程服務器的API進行交互。API與遠程服務器不同——它是服務器接收請求和發送響應的部分。


API作為服務客戶的一種方式


你可能聽說過一些公司將api打包成產品。例如,地下氣象臺出售對其天氣數據API的訪問權。

示例場景:您的小型企業的網站有一個用於為客戶註冊預約的表單。您希望讓您的客戶能夠自動創建一個帶有該約會詳細信息的谷歌日曆事件。API的使用:這個想法是讓你的網站的服務器直接與谷歌的服務器對話,請求創建一個事件與給定的細節。然後,您的服務器將接收谷歌的響應,對其進行處理,並將相關信息發送回瀏覽器,例如發送給用戶的確認消息。

另外,您的瀏覽器通常可以繞過您的服務器直接向谷歌的服務器發送API請求。這個谷歌日曆的API與其他遠程服務器的API有何不同?在技術術語中,區別在於請求和響應的格式。要呈現整個web頁面,您的瀏覽器需要HTML格式的響應,其中包含表示代碼,而谷歌Calendar的API調用只返回數據—很可能是JSON格式。

如果您的網站服務器正在發出API請求,那麼您的網站服務器就是客戶端(類似於您的瀏覽器是客戶端,當您使用它來導航到一個網站)。從用戶的角度來看,api允許他們在不離開網站的情況下完成操作。大多數現代網站至少使用一些第三方api。

許多問題已經有了第三方解決方案,無論是以庫還是服務的形式。使用現有的解決方案通常更容易、更可靠。開發團隊將他們的應用程序分解成多個通過api互相通信的服務器並不少見。為主應用服務器執行輔助功能的服務器通常稱為微服務。

總而言之,當一個公司給客戶提供了一個API,它只是意味著他們已經建立了一套專用的url返回純數據響應——這意味著反應不會包含這種表象的開銷你期望在一個網站這樣一個圖形用戶界面。你能用瀏覽器發出這些請求嗎?通常,是的。由於實際的HTTP傳輸是在文本中進行的,所以您的瀏覽器總是會盡其所能來顯示響應。例如,您可以直接使用瀏覽器訪問GitHub的API,甚至不需要訪問令牌。這是您在瀏覽器中訪問GitHub用戶的API路由時得到的JSON響應

(https://api.github.com/users/petrgazarov):

瀏覽器似乎很好地顯示了JSON響應。這樣的JSON響應可以在代碼中使用。從本文中提取數據很容易。然後你可以對數據做任何你想做的事情。


參考​:https://medium.com/free-code-camp/what-is-an-api-in-english-please-b880a3214a82


分享到:


相關文章: