a级片网址,www.一级毛片,日批国产,中文字幕日韩精品有码视频,黄色毛片免费网站,久久久精品午夜免费不卡,天堂福利视频

API:互聯(lián)網(wǎng)是如何在幕后工作的?

2015-01-26 10:14:07   作者:   來源:medium   評論:0  點擊:


  我們每天都通過使用筆記本和移動電話與朋友、家人以及同事溝通,那么程序之間是如何相互溝通的呢?

  API是我們這個現(xiàn)實生活中隱藏的“骨干”——讓軟件程序互相通信。而今天“API經(jīng)濟”正在迅速的改變世界的交互方式,照片分享、網(wǎng)上購物……越來越多的事物都通過API進行碰撞。因為API,技術(shù)創(chuàng)新正以比以往更快的速度發(fā)生。如果你會編寫軟件,那么你或許已經(jīng)熟悉API,那么其余的呢?API的精確意義是什么?為什么它如此重要?

  API:軟件的支柱

  在最基本的層面上,一個API是一組決定一個程序如何與另一個通信的規(guī)則。在你使用PC的時候,API讓數(shù)據(jù)在不同應用之間傳輸成為可能,如從一個電子郵件中復制一個鏈接到Word文檔中。

  在Web上,你可以把API想象為一個電話系統(tǒng):當一個應用想從另一個應用那里獲取信息時,它會“調(diào)用”另一個應用的API。舉個例子來說,如果你想建立一個應用為用戶顯現(xiàn)最近的、用戶朋友最喜歡的餐廳,你可以使用Yelp API獲取餐廳數(shù)據(jù)(Yelp是美國點評網(wǎng)站)以及 Facebook API獲取用戶朋友喜歡的數(shù)據(jù)。當用戶打開應用時,應用的內(nèi)部代碼將調(diào)用Yelp和Facebook的API來獲取所需的數(shù)據(jù)。

  圖1:用戶訪問一個網(wǎng)站,該網(wǎng)站調(diào)用Facebook API來獲取數(shù)據(jù)

  在Web API的世界里,諸如Facebook、Google Map、Foursquare等大的服務器允許較小的應用“捎帶”它們的數(shù)據(jù)。例如,許多的應用允許用戶使用Facebook登錄,而這就是通過Facebook API觸發(fā)的。

  API以一種可控的方式向外界陳列一塊軟件內(nèi)部數(shù)據(jù)和功能,允許一個應用共享數(shù)據(jù)以及“代表”其他應用的執(zhí)行行為,而不需要開發(fā)者分享他們所有的代碼。在這種規(guī)模上分享代碼將降低效率,此外還會帶來重大的安全威脅。API允許這種不分享實際代碼的集成。包括開源軟件在內(nèi),API都是有用處的,因為大多數(shù)開發(fā)者沒有時間和耐心去為使用某一塊功能而瀏覽成千上萬行代碼。相反,該功能只需通過一個API就可以被使用。

  如果沒有API,很難想象應用之間如何連通。API允許應用相互交談,因此更具創(chuàng)新性和一致性的應用被創(chuàng)建。試想一下,如果Google Map沒有提供一個API,那么在該互聯(lián)網(wǎng)上相關(guān)的每一個移動應用和網(wǎng)站必須重新實施其地圖系統(tǒng),這是一個非常艱巨的任務。對于一個公司而言內(nèi)部的API對增加公司共享資源也是非常有用的,例如一個維基百科的軟件開發(fā)者可以創(chuàng)建一個API以支持所有終端用戶(包括網(wǎng)站、iOS、Android和黑莓應用)使用的維基百科應用,以避免這些應用重復的復制代碼,它們可以通過一個API共享數(shù)據(jù)。API通過限制外部訪問特定子集(通常是數(shù)據(jù)交換的功能)簡化了軟件開發(fā)的復雜性。正因為如此,如今很多新的軟件開發(fā)周期可以是幾周,而不是以往的幾個月或幾年。

  API為何如此重要?

  在現(xiàn)代社會中,API是非常重要的,因為他們解釋了開發(fā)者是如何構(gòu)建一個可以“插入”大服務(如Twitter和Facebook這樣的社交網(wǎng)絡或像Dropbox、AccuWeather這樣的公用事業(yè))的應用。一個手機游戲,如FlappyBird,可以使用Dropbox讓玩家在Dropbox云中存儲他們的游戲和設置參數(shù),而不需要其本身構(gòu)建一個云存儲系統(tǒng);一個開發(fā)者可以搭載Uber API設計一個提供打車服務的地圖應用。API可以在很大程度上節(jié)省開發(fā)者和用戶的時間。用戶這塊怎么說呢?試想一下,如果Facebook不提供API的話,用戶就必須為每個應用創(chuàng)建一個單獨的用戶名和密碼,而不能簡單的點擊“通過Facebook登錄”。

  API實現(xiàn)了現(xiàn)代Web的良好體驗。開發(fā)者可以挖掘和選取API創(chuàng)造全新的體驗。從Google到Twitter再到Facebook……,開發(fā)者有數(shù)千個API選擇。一個常見的API應用例子是“共享”圖標,你可以在網(wǎng)站文章、視頻等地方發(fā)現(xiàn)它的身影。當你點擊這些分享鏈接的時候,意味著一個API在被調(diào)用。另一個常見的API應用是網(wǎng)站下面的評論系統(tǒng),如果們所知道的Disqus,它允許用戶無需網(wǎng)站所有者做任何額外操作的前提下發(fā)布和查看評論。說到這里,你可能已經(jīng)注意到了,API是非常普遍的,它加速了創(chuàng)新的步伐,它讓每一個新的開發(fā)者在不重新“發(fā)明輪子”下就可以創(chuàng)建功能。

  API的商業(yè)模式

  正如推斷的那樣,API經(jīng)常被公司用來獲取利益。圖3顯示了四個通用的API商業(yè)模式,公司通過這些模式讓API向業(yè)務目標邁進了一步。圖中所標注的“Developer”在這里特指利用API的軟件件開發(fā)人員。

  Free:顧名思義,公司或組織不花一分錢就可以獲取該API。對于免費共享API的公司(如Google和Facebook)而言,這一舉措可能讓公司獲得更多的用戶,其原因是開發(fā)者使用該API起到很大的傳播作用,又或者僅僅是因為API的免費和開源。

  Developer Pays:在開發(fā)者付費模式中,API或通過它的數(shù)據(jù)對開發(fā)者而言是有價值的,他們愿意為訪問支付費用,例如PayPal,通過payments API讓網(wǎng)上支付變得更簡單,不過需要付費才能訪問該API。

  Developer Gets Paid:開發(fā)者獲得報酬模式,一個公司可能會支付給開發(fā)者一定的酬勞以讓其使用公司的API。這種情況常見于聯(lián)署方案或收益分享方案中,如開發(fā)者使用亞馬遜的API,當用戶是由該開發(fā)者“引導”進入亞馬遜時,開發(fā)者會獲得相應的酬勞。

  Indirect:間接模型覆蓋了其他公司可能從API獲利的方式。例如,為企業(yè)提供軟件來管理他們銷售周期的Salesforce公司可以通過更昂貴的合同來向其業(yè)務客戶銷售它的API。

  一個API就是一個承諾

  目前API存在的主要問題是它們不一定是永久性的。因為,今天一個公司提供一個API并不能意味著你明天還能夠使用。例如,Twitter在2012年底限制了第三方訪問其API,而這樣做的后果是所有涉及該API的客戶端全部遇難,這也迫使用戶不得不使用Twitter官方應用和網(wǎng)站,用戶也不得不忍受Twitter隨心所欲向用戶顯示的廣告;蛟S它會借口稱這么做是為了更具凝聚力的用戶體驗,但是對于許多依賴Twitter API的開發(fā)者來說,這意味著,他們這部分業(yè)務的終結(jié)。

  類似的例子是常見的,那些提供API的初創(chuàng)公司常有遭遇關(guān)閉或收購的命運。由于Web API仍處于初級階段,還有很多東西要學,所以API提供者應該清楚這樣一件事:一個API就是一個承諾,一旦其他人很依賴它,那么維持它并保持活躍就顯得至關(guān)重要了。

  最后

  幸運的是,在大多數(shù)情況下,API是鼓勵創(chuàng)新的。沒有API,應用之間的通信將會被扼殺;軟件開發(fā)者將不斷重寫并執(zhí)行相同功能的軟件;創(chuàng)新的腳步將會放緩。人們?nèi)粘5姆窒、評論等將蕩然無存。所以我們離不開API,隨著世界越來越深入到技術(shù)革命,API將在我們每天使用的應用和網(wǎng)站中扮演更大的角色。

分享到: 收藏

專題

民权县| 拉孜县| 繁峙县| 且末县| 武山县| 防城港市| 安福县| 梨树县| 通渭县| 永顺县| 澜沧| 六安市| 绵阳市| 论坛| 平和县| 信宜市| 静乐县| 溧水县| 南城县| 新巴尔虎左旗| 宿松县| 布尔津县| 曲靖市| 漯河市| 普陀区| 喀喇沁旗| 罗田县| 略阳县| 郓城县| 甘肃省| 龙川县| 南华县| 保德县| 肇庆市| 镇安县| 元朗区| 栾川县| 临西县| 盖州市| 阿拉尔市| 都兰县|