• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     首頁(yè) > 新聞 > IT與互聯(lián)網(wǎng) >

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

    2015-01-26 10:14:07   作者:   來(lái)源:medium   評論:0  點(diǎn)擊:


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

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

      API:軟件的支柱

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

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

      圖1:用戶(hù)訪(fǎng)問(wèn)一個(gè)網(wǎng)站,該網(wǎng)站調用Facebook API來(lái)獲取數據

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

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

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

      API為何如此重要?

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

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

      API的商業(yè)模式

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

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

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

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

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

      一個(gè)API就是一個(gè)承諾

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

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

      最后

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

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 正定县| 金寨县| 丽水市| 临桂县| 法库县| 华容县| 焉耆| 海原县| 隆昌县| 金平| 绥滨县| 乌鲁木齐市| 福州市| 利津县| 拜泉县| 怀来县| 简阳市| 呼伦贝尔市| 丹阳市| 凤翔县| 泰安市| 临沧市| 祁阳县| 丘北县| 石柱| 抚宁县| 原阳县| 本溪| 夏邑县| 景泰县| 大冶市| 尼木县| 平乡县| 临泉县| 仁怀市| 安达市| 民勤县| 霍林郭勒市| 宿松县| 新平| 高要市| http://444 http://444 http://444 http://444 http://444 http://444