欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

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ù)在不同應(yīng)用之間傳輸成為可能,如從一個電子郵件中復(fù)制一個鏈接到Word文檔中。

  在Web上,你可以把API想象為一個電話系統(tǒng):當(dāng)一個應(yīng)用想從另一個應(yīng)用那里獲取信息時,它會“調(diào)用”另一個應(yīng)用的API。舉個例子來說,如果你想建立一個應(yīng)用為用戶顯現(xiàn)最近的、用戶朋友最喜歡的餐廳,你可以使用Yelp API獲取餐廳數(shù)據(jù)(Yelp是美國點評網(wǎng)站)以及 Facebook API獲取用戶朋友喜歡的數(shù)據(jù)。當(dāng)用戶打開應(yīng)用時,應(yīng)用的內(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等大的服務(wù)器允許較小的應(yīng)用“捎帶”它們的數(shù)據(jù)。例如,許多的應(yīng)用允許用戶使用Facebook登錄,而這就是通過Facebook API觸發(fā)的。

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

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

  API為何如此重要?

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

  API實現(xiàn)了現(xiàn)代Web的良好體驗。開發(fā)者可以挖掘和選取API創(chuàng)造全新的體驗。從Google到Twitter再到Facebook……,開發(fā)者有數(shù)千個API選擇。一個常見的API應(yīng)用例子是“共享”圖標(biāo),你可以在網(wǎng)站文章、視頻等地方發(fā)現(xiàn)它的身影。當(dāng)你點擊這些分享鏈接的時候,意味著一個API在被調(diào)用。另一個常見的API應(yīng)用是網(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è)務(wù)目標(biāo)邁進了一步。圖中所標(biāo)注的“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,當(dāng)用戶是由該開發(fā)者“引導(dǎo)”進入亞馬遜時,開發(fā)者會獲得相應(yīng)的酬勞。

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

  一個API就是一個承諾

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

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

  最后

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

分享到: 收藏

專題