精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

API難解釋?這次用啤酒和積木來破局

譯文
開發 前端
API是我們一直在用的東西。盡管API無處不在,但許多人、甚至技術人員對于它們是什么及工作方式有著很模糊的理解。說真的,請你的同事馬上解釋一下API。如果對方立馬說“API指應用編程接口。它是讓軟件應用程序彼此通信的接口......”我會請這個人喝啤酒。大多數人真的無法闡明API。

[[242112]]

【51CTO.com快譯】早在我開始學習前端Web開發,頭一回遇到“API”時,這個術語聽起來像是某種精釀啤酒。后來我有了切身體會:如果你去酒吧要一杯API,酒保會拋出“404:資源未找到”的錯誤。是我自己讓人笑話了。

API是我們一直在用的東西。盡管API無處不在,但許多人、甚至技術人員對于它們是什么及工作方式有著很模糊的理解。說真的,請你的同事馬上解釋一下API。如果對方立馬說“API指應用編程接口。它是讓軟件應用程序彼此通信的接口......”我會請這個人喝啤酒。大多數人真的無法闡明API。

讓我們改變這種情況。

“A”表示應用。

該術語的第一個部分高度依賴上下文。視具體的使用場景而定,“應用”實際上可以指很多東西:整個服務器、整個應用程序本身及其所需的數據或只是應用程序的一小部分。

不妨看看這些上下文:服務器、整個應用程序和應用程序的一小部分。我們先設想Web是聯網服務器組成的龐大全球網絡。互聯網上的每一頁都存儲在這其中一臺遠程服務器上的某個地方,即位于遠處的計算機,經過優化以處理向你的瀏覽器提供這個特定網站的請求。

因此,如果你在瀏覽器欄中輸入www.github.com,Chrome、Firefox或Safari等瀏覽器向GitHub的服務器發送請求,服務器會禮貌地發回在本地計算機上顯示頁面及內容所需要的全部代碼。瀏覽器收到此響應后,它會解釋代碼并顯示頁面。

服務器作為API:在你的瀏覽器(又叫客戶端)看來,GitHub的服務器就是API。這意味著每次你訪問Web上的頁面時,都與某臺遠程服務器的API進行交互。此處的API與遠程服務器不一樣。相反,它是接收請求并發送響應的服務器的一部分。

整個應用程序作為API:初始調用時,GitHub服務器發送整個Web應用程序:表示結構(網站布局及外觀)以及網站的所有內容。表示這部分基本上固定不變,作為HTML代碼發送,由瀏覽器顯示。內容(網站中包含的動態信息)作為數據發送,常常采用JSON格式,然后在頁面上的適當位置加以顯示。

所以如果我們看一下典型的GitHub頁面,表示部分(比如頂部的導航欄、左邊的用戶照片和簡介、中間固定的存儲倉庫)幾乎保持一樣。但那些綠色小方形表示每日GitHub活動量的方框呢?這會根據用戶的貢獻而變化。我們將項目工作推送到GitHub,然后檢查以確保它已添加到簡介頁面上時,API告訴瀏覽器將今天的方形標成綠色、它到底應該用什么色度。但是,其他的一切保持不變。

不同類型的API讓我們的瀏覽器可以調用特定類型的信息,只更新相關的數據,無需重新加載沒有變的其他所有內容。

應用程序的一部分作為API:構建Web應用程序時,用之前就由組件來構建快得多、容易得多(并且常常更可靠)。設想一下,很可能有一個庫、預制平臺或XaaS來提供。

但是這些組件如何相互通信,以便作為一個統一的應用程序來執行?

“P”表示協議,“I”表示接口

API的應用端可能大不一樣,但無論我們談論什么樣的上下文,API的最終任務仍然一樣:溝通和協調。

API中的“P”即協議指確定彼此約定的方法,以便其他軟件與特定的API聯系,請求/接收來自它的相關信息。

接口指API的中間方面,充當讓兩個應用程序能夠相互聯系的實際功能。

因此從根本上說,API好比是兩個軟件之間的一種協議或契約,這個“粘合層”讓它們能夠對接、協同運行。實際上,API說“如果你給我這個指令,我會執行此操作/返回此信息。”

打個比喻,API好比微釀啤酒廠的啤酒水龍頭。每個水龍頭對應某一類啤酒,所以當你按下標有“Porter”的水龍頭把手時,就知道你的杯里會灌滿濃郁的麥香味啤酒,按下“Pilsner”會出來清爽的黃色啤酒。同樣道理,請求API輸出的客戶端知道按下哪個數據“水龍頭”以便獲得所需的輸出。比如說,Porter預計從porter水龍頭出來,而不是別的水龍頭。同時,用戶甚至不必知道或關心水龍頭內部的情況。可以重新排列隊伍或優化產品(你提供的啤酒或應用程序),而不影響用戶,因為接口仍然一樣。

API不僅僅推送數據,還接受數據。這里啤酒比喻不恰當,因為啤酒是單向流動。因此,我們用另外的比喻來說明數據如何進入API。設想一下小孩子玩的形狀分類器玩具。圓形、星形和三角形的拼塊通過適當形狀的開口插入;星形拼塊只能通過星形孔插入。在API中,數據以一種定義的形式(比如圓形或三角形)來提供,只能通過相應的開口穿過接口。API要求是某種格式,拒絕不適合的數據。別試圖將三角形數據放入到方孔。因此,客戶端被迫按照API構建器的規范(即協議)來組織輸入,該規范為事務設定了預期要求。

無論我們用什么比喻來解釋API,API都好比是兩個軟件之間的協議或契約,說“如果你給我這個指令,并采用這種格式,我就會執行這個指定的動作或返回此信息。”

API作為產品

除了作為瀏覽器、服務器、軟件和數據庫之間交換信息的載體外,API還可以打包成產品來銷售。比如說,Weather Underground售賣訪問其天氣數據API的服務。這是一組專用的URL,返回純數據響應(這里是最新的天氣預報),以便用來在你自己的應用程序中豐富數據。你不是得到Weather Underground在其自己的應用程序或網站上所用的表示結構,你構建自己的圖形用戶界面。

話雖如此,你絕對可以用瀏覽器向API發出請求,查看返回的數據,無論用不用GUI。由于請求數據的實際HTTP傳輸以文本形式發生,你的瀏覽器通常能夠顯示響應。比如說,你可以直接用瀏覽器訪問GitHub的API,甚至無需訪問令牌。以下是你在瀏覽器中訪問GitHub用戶的API路由時獲得的JSON響應,不妨看看我的: 

  1. {  
  2.   "login""mgienow",  
  3.   "id": 19556217,  
  4.   "node_id""MDQ6VXNlcjE5NTU2MjE3",  
  5.   "avatar_url""https://avatars2.githubusercontent.com/u/19556217?v=4",  
  6.   "gravatar_id""",  
  7.   "url""https://api.github.com/users/mgienow",  
  8.   "html_url""https://github.com/mgienow",  
  9.   "followers_url""https://api.github.com/users/mgienow/followers",  
  10.   "following_url""https://api.github.com/users/mgienow/following{/other_user}"
  11.   "gists_url""https://api.github.com/users/mgienow/gists{/gist_id}",  
  12.   "starred_url""https://api.github.com/users/mgienow/starred{/owner}{/repo}",  
  13.   "subscriptions_url""https://api.github.com/users/mgienow/subscriptions",  
  14.   "organizations_url""https://api.github.com/users/mgienow/orgs",  
  15.   "repos_url""https://api.github.com/users/mgienow/repos",  
  16.   "events_url""https://api.github.com/users/mgienow/events{/privacy}",  
  17.   "received_events_url""https://api.github.com/users/mgienow/received_events",  
  18.   "type""User",  
  19.   "site_admin"false,  
  20.   "name""Michelle Gienow",  
  21.   "company"null,  
  22.   "blog""",  
  23.   "location""Baltimore, MD",  
  24.   "email"null,  
  25.   "hireable"true,  
  26.   "bio""Front-end web developer & recovering journalist - I write web dev/JS/Node/Python @TheNewStack",  
  27.   "public_gists": 1,  
  28.   "followers": 11,  
  29.   "following": 2,  
  30.   "created_at""2016-05-24T16:33:09Z",  
  31.   "updated_at""2018-01-27T03:26:14Z"  

所以你訪問我的GitHub頁面時,它調用GitHub API,以獲取顯示頁面的表示代碼(HTML/CSS),并調用另一個GitHub API以獲取對我來說獨特的數據。還有針對其他API的另外幾個調用,以獲取頁面其他區域中的內容。瀏覽器收到所有這些調用后,知道將數據插入到頁面,生成最終的、統一的表示。

組合起來

基本上來說,任何一款可與其運行時環境明確分開來的軟件都能成為API中的“A”。它本身也可能有某種API。比如說,假設你在代碼中使用第三方庫。一旦該庫合并到你的代碼中,就成為整個應用程序的永久部分。然而作為一個獨特的軟件,該庫使用API(無需擔心,API預先打包),以便與你的其余代碼進行交互。

所以API可以是服務器、應用程序,甚至買賣的產品。這就是為什么API很難解釋,即使對于每天接觸API的人來說也是如此。

也許定義API本質的最恰當的方法是使用樂高積木。積木提供了一種簡單且結構化的方式,讓所有積木都以同樣的方式拼接起來。同時,積木可能的組合無窮無盡。與之相仿,軟件可以使用API來連接我們尋找的信息以及查看信息的接口,創建獨特的服務組合,而這些服務共同形成一個應用程序。

樂高積木確實有助于開發人員了解API的價值。使用API,開發人員沒必要每次編寫新程序時從頭開始。他們不再需要構建一個試圖做所有任務的核心應用程序。相反,他們可以使用已經創建的更好地完成任務的組件,將某些責任分包出去。所以API是軟件開發界的樂高積木:這種標準化的工具便于軟件與其他軟件聯系,因而加快構建和部署,還能為每個人縮短加載時間。

原文標題:Tutorial: APIs Explained, Using Beer and Legos,作者:Michelle Gienow

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2017-10-09 09:33:55

2010-04-23 15:07:08

云計算

2015-02-02 14:06:33

微軟win10

2021-12-24 16:38:04

零信任

2020-06-08 17:26:35

TORRAS

2021-06-03 09:32:21

云計算云廠商ICT

2013-11-22 16:39:24

智慧城市

2025-10-29 07:00:00

供應鏈企業關稅

2025-05-21 09:34:11

2020-01-18 08:19:09

啤酒廠物聯網IOT

2021-08-10 08:43:50

大數據經濟互聯網

2019-06-06 09:31:45

開源技術 趨勢

2021-01-07 16:11:29

SaaSAI企業

2025-05-21 09:41:23

2020-11-30 15:04:23

大數據

2019-10-25 10:33:17

程序員技能開發者

2013-08-20 09:11:14

母嬰市場社區App移動應用

2022-04-21 11:52:16

零信任網絡安全

2015-09-21 20:53:48

2021-08-17 10:13:19

大數據數字經濟數據技術
點贊
收藏

51CTO技術棧公眾號

中文区中文字幕免费看| 亚洲成人黄色av| 国产盗摄在线视频网站| 成人精品视频一区二区三区尤物| 久久久久久一区二区三区| 2018国产精品| gogo亚洲高清大胆美女人体| 日本一区二区成人| 成人av蜜桃| 免费黄色片视频| 欧美粗暴jizz性欧美20| 亚洲国产三级网| 思思久久精品视频| 在线高清av| 一区二区三区在线免费视频| 青娱乐一区二区| xxxx18国产| 日本最新不卡在线| 久久男人资源视频| av最新在线观看| 群体交乱之放荡娇妻一区二区| 欧美日韩国产系列| 欧美日韩第二页| h网站久久久| 国产亚洲一区二区三区| 国产精品swag| 国产精品无码久久av| 亚洲欧洲日本mm| 日韩中文有码在线视频| aaaaa级少妇高潮大片免费看| 91丨精品丨国产| 色久优优欧美色久优优| 国产欧美日韩网站| 日日夜夜天天综合入口| 国产精品福利一区| 欧美大陆一区二区| 黄片毛片在线看| 国产精品自拍av| 成人激情黄色网| 中文字幕欧美人妻精品| 国产亚洲在线观看| 欧美激情在线狂野欧美精品| 久久人妻无码aⅴ毛片a片app| 久久99国产精品视频| 亚洲成年人在线播放| 中文字幕第10页| 日韩黄色三级在线观看| 欧洲生活片亚洲生活在线观看| 日韩欧美国产综合在线| 黄色免费在线网站| 中文字幕中文在线不卡住| 色视频一区二区三区| 你懂的视频在线| 91免费观看视频| 久久99精品久久久水蜜桃| 日本波多野结衣在线| 国产成人免费高清| 99久热re在线精品视频| xxxx国产精品| 成人蜜臀av电影| 国产精品一区视频| 人妻一区二区三区免费| 99在线热播精品免费| 国产午夜精品在线| 午夜小视频免费| 91啪亚洲精品| 日本午夜精品一区二区| 第一视频专区在线| 国产精品久久久久aaaa樱花| 在线视频精品一区| www久久日com| 亚洲成人你懂的| 久久无码高潮喷水| 全亚洲第一av番号网站| 欧美色精品在线视频| 高清av免费看| 一本一道久久a久久| 亚洲成人黄色在线观看| 一本色道久久综合亚洲精品图片| 免费看成人吃奶视频在线| 国产一区二区三区在线| 多男操一女视频| 国内成人在线| 日韩美女在线观看一区| 亚洲一区中文字幕在线| 国产乱码精品一区二区三区五月婷| 波多野结衣一区二区三区在线观看| 日本黄色大片视频| 久久精品无码一区二区三区| 亚洲一区二区三区四区中文| 日韩欧美一起| 色丁香久综合在线久综合在线观看| 亚洲一级片网站| 亚洲专区**| 亚洲欧美激情另类校园| 午夜爱爱毛片xxxx视频免费看| 狠狠噜噜久久| 国产精品久久久久不卡| jizz中国少妇| 久久伊人中文字幕| 裸体裸乳免费看| 亚洲精品日产| 日韩一区二区三区av| 蜜桃精品一区二区| 亚洲最新av| 欧美亚洲国产精品| 国产三级按摩推拿按摩| 久久亚洲二区三区| 91免费国产精品| 成人精品国产亚洲| 精品国产91亚洲一区二区三区婷婷| av小说在线观看| 很黄很黄激情成人| 成人免费激情视频| 美国一级片在线免费观看视频| 亚洲素人一区二区| 久久人妻精品白浆国产| 视频在线亚洲| www.xxxx精品| 日韩精品一区二区亚洲av观看| 国产精品1024久久| 亚洲福利av| a欧美人片人妖| 日韩美一区二区三区| 特黄一区二区三区| 久久福利一区| 精品999在线观看| 亚洲资源一区| 欧美日韩高清一区二区不卡| 亚洲狠狠婷婷综合久久久久图片| 91不卡在线观看| 国产精品久久久久久久久久久久久久| 无码国产精品96久久久久| 亚洲美女视频在线| 中文字幕第17页| 国产精品美女久久久久久不卡 | 国产老熟女伦老熟妇露脸| 久久久9色精品国产一区二区三区| 欧美在线亚洲在线| 日日夜夜精品免费| 一个色综合网站| 两女双腿交缠激烈磨豆腐| 99久久精品费精品国产| 国产精品一二三在线| 北岛玲日韩精品一区二区三区| 欧美日韩中文字幕在线| 欧美 变态 另类 人妖| 亚洲国产精品一区| 国产精品一区二区av| 四季久久免费一区二区三区四区| 欧美一区二区三区喷汁尤物| 国产小视频你懂的| 狠狠色狠狠色综合| 国产大尺度在线观看| yw.尤物在线精品视频| 国产亚洲精品久久久| 国产精华7777777| 欧美激情一区二区三区蜜桃视频| 婷婷丁香激情网| 日本一区二区高清不卡| 国产精品人成电影在线观看| 91精品专区| 欧美一区二区三区免费观看视频| 国产美女久久久久久| 国产东北露脸精品视频| 欧美一级欧美一级| 美女毛片一区二区三区四区| 日韩av第一页| 色影院视频在线| 日韩一卡二卡三卡国产欧美| 久久久久久久国产视频| 91一区二区在线| 国产日韩成人内射视频| 99久久婷婷| 99中文字幕| 性感女国产在线| 中文字幕亚洲综合久久筱田步美| 91丨九色丨蝌蚪丨对白| 亚洲一级电影视频| 亚洲国产无码精品| 麻豆精品一区二区| 黄色a级片免费看| 亚洲欧洲美洲国产香蕉| 国产拍精品一二三| 成人免费一区二区三区牛牛| 日韩福利视频在线观看| 中文字幕人成人乱码亚洲电影| 亚洲天堂2016| 成人免费无码大片a毛片| 喷水一区二区三区| 国产精品自拍合集| 欧美人妖在线| 91九色蝌蚪成人| 视频二区不卡| 欧美日韩xxx| 欧美成人综合在线| 日韩视频123| 99成人精品视频| 亚洲一区二区在线观看视频| 91成人在线免费视频| 国产福利一区二区三区| 一级在线免费视频| 亚洲看片一区| av电影一区二区三区| 香蕉视频一区| 91免费看网站| 免费污视频在线一区| 久久久久久久999精品视频| 国产亚洲依依| 亚洲激情视频在线观看| 国产精品人妻一区二区三区| 欧美日韩亚洲一区二| 一区视频免费观看 | 日韩福利小视频| www久久精品| 亚洲AV成人精品| 另类中文字幕网| avav在线看| 亚洲国内欧美| 狠狠精品干练久久久无码中文字幕 | 来吧亚洲综合网| 国产亚洲一二三区| 网站免费在线观看| 国产电影一区在线| aaaaaaaa毛片| 久久精品理论片| 中文字幕欧美人妻精品一区| 最新成人av网站| 男人c女人视频| 欧美一区二区三区另类 | 免费a v网站| 国产高清不卡一区二区| 日韩成人av免费| 蜜臀av一区二区| 五月婷婷激情久久| 天堂成人免费av电影一区| 男人用嘴添女人下身免费视频| 欧美色一级片| www.日本在线视频| 欧美久久成人| youjizz.com在线观看| 中文字幕一区二区三区久久网站| 福利网在线观看| 亚洲精品一二三区区别| 少妇高潮流白浆| 亚洲第一偷拍| 免费看黄色a级片| 欧美69视频| 日本五级黄色片| 亚洲人成毛片在线播放女女| 久久综合久久网| 一区二区三区高清视频在线观看| 国产午夜大地久久| 亚洲尤物精选| 国产福利一区视频| 裸体在线国模精品偷拍| 黄色片免费网址| 国产成人综合在线| 中文字幕免费在线播放| 久久久久高清精品| 俄罗斯毛片基地| 亚洲欧洲综合另类在线| 久久久久久欧美精品se一二三四| 亚洲一区二区三区在线看| 日韩欧美中文字幕一区二区| 一本大道久久a久久综合婷婷| 亚洲大尺度在线观看| 欧美美女直播网站| 午夜美女福利视频| 亚洲久久久久久久久久久| 国产天堂素人系列在线视频| 色一情一乱一区二区| 八戒八戒神马在线电影| 午夜精品福利视频| 成人精品电影在线| 91久久久久久久久久| 9l视频自拍蝌蚪9l视频成人| 久久手机视频| 国产精品久久久久蜜臀| 免费看日本黄色| 美女国产一区| 日韩视频在线观看一区二区三区| 东方欧美亚洲色图在线| 老牛影视av老牛影视av| 亚洲三级小视频| 日本va欧美va国产激情| 欧美日韩国产综合一区二区| 亚洲第九十九页| 亚洲性夜色噜噜噜7777| 26uuu亚洲电影在线观看| 欧美一级视频一区二区| 日韩国产大片| 免费成人深夜夜行视频| 97精品一区二区| 国产毛片视频网站| 久久精品国产免费看久久精品| 国产+高潮+白浆+无码| 国产日韩欧美高清| 激情综合网五月婷婷| 欧美亚日韩国产aⅴ精品中极品| 成人福利小视频| 亚洲天堂色网站| 182在线播放| 成人免费黄色网| 狠狠做深爱婷婷综合一区| 国产肉体ⅹxxx137大胆| 男女视频一区二区| 韩国无码一区二区三区精品| 1区2区3区欧美| 无码任你躁久久久久久久| 精品久久人人做人人爽| 2021av在线| 日本高清久久天堂| 粉嫩av一区二区| 中文字幕中文字幕在线中一区高清 | 18禁男女爽爽爽午夜网站免费 | 精品国产av色一区二区深夜久久| 国产精品黄色在线观看| 欧美国产成人精品一区二区三区| 日韩欧美不卡一区| 欧美被日视频| 国产精品高清在线观看| 欧美一性一交| a级黄色小视频| 国产黑丝在线一区二区三区| 亚洲精品自拍视频在线观看| 91久久香蕉国产日韩欧美9色| 国模无码一区二区三区| 毛片精品免费在线观看| 激情久久一区二区| 日韩在线三级| 老司机午夜精品视频在线观看| 中文字幕在线永久| 亚洲福利视频导航| 精品人妻少妇AV无码专区| 久久午夜a级毛片| 四虎国产精品免费久久5151| 视频一区视频二区视频三区视频四区国产| 国产精品一卡| 成人精品在线观看视频| 狠狠做深爱婷婷久久综合一区| 日本精品一二区| 国内伊人久久久久久网站视频 | 欧美激情一区二区视频| 欧美一区二区久久久| 中文字幕在线视频区| 国产精品嫩草视频| 久久精品99久久无色码中文字幕| 国产欧美高清在线| 国产亚洲精品精华液| 亚洲图片欧美日韩| 在线日韩av观看| 免费视频观看成人| 永久免费精品视频网站| 国产在线不卡一区| 青娱乐免费在线视频| 亚洲第一精品电影| 日韩伦理在线| 日本不卡一区二区三区在线观看| 日韩精品电影在线观看| 极品久久久久久久| 91麻豆精品国产自产在线 | 成人免费播放视频| 亚洲一区二区三区视频在线| 天堂网在线观看视频| 国产不卡在线观看| 99久久精品网站| 美女扒开腿免费视频| 懂色av中文一区二区三区天美| 蜜桃成人在线视频| 国产热re99久久6国产精品| 综合久久99| 一本加勒比波多野结衣| 欧美视频中文一区二区三区在线观看| 久操视频在线免费播放| 国产不卡一区二区三区在线观看| av成人毛片| 欧美日韩国产黄色| 日韩精品一区二区三区在线观看| 国产自产自拍视频在线观看| 日韩av电影在线观看| 国产在线精品免费av| 国产又大又黄视频| 色吧影院999| 国内精品麻豆美女在线播放视频 | 日韩精品久久一区| 国产精品99久久久久久久vr| 九热这里只有精品| 在线日韩日本国产亚洲| **爰片久久毛片| 日本新janpanese乱熟| 一区二区三区高清在线| 五月婷婷在线观看视频| 国产精品中文字幕在线观看| 国产精品a级| 久久久久亚洲av无码a片| 欧美电影免费提供在线观看| 亚洲www免费| 欧美精品卡一卡二| **网站欧美大片在线观看|