一個正在被API驅(qū)動的互聯(lián)網(wǎng)時代

?API做為每個重要信息技術(shù)趨勢的核心內(nèi)容懊缺,移動設(shè)計(jì)、云計(jì)算铁坎、物聯(lián)網(wǎng)往核、大數(shù)據(jù)及社交網(wǎng)絡(luò)等應(yīng)用都依賴于一個基于web的界面與它們的分布式組件進(jìn)行連接箫爷,為全球范圍內(nèi)的各個商業(yè)領(lǐng)域提供具有創(chuàng)新性和顛覆性的解決方法。而API的使用既是催化劑聂儒,也是促成成果的主要力量虎锚。

什么是API??

應(yīng)用程序接口(英文:Application Programming

Interface衩婚,縮寫API)窜护,就是接口,也是通道非春,負(fù)責(zé)一個程序和其他軟件的溝通柱徙,本質(zhì)是預(yù)先定義的函數(shù)。

舉個簡單的栗子奇昙,假設(shè)物流中“貨物”是數(shù)據(jù)护侮,存放貨物的“總倉庫”是數(shù)據(jù)庫,“店鋪”是我們的網(wǎng)站储耐、App羊初。頁面上顯示的內(nèi)容、數(shù)字什湘,以及用戶的操作請求和結(jié)果都是需要不停搬運(yùn)的“貨物”數(shù)據(jù)长赞,則負(fù)責(zé)調(diào)配分配打包的中轉(zhuǎn)站就是API晦攒,店鋪小哥直接從中轉(zhuǎn)站取貨就好。

對于軟件提供商來說得哆,開放API勤家,讓別的應(yīng)用程序來調(diào)用,形成生態(tài)柳恐,軟件才能發(fā)揮最大的價值,才能更有生命力热幔。

對于應(yīng)用開發(fā)者來說乐设,有了開放的API,就可以直接調(diào)用多家公司做好的功能來做自己的應(yīng)用绎巨,不需要所有的事情都自己操刀近尚,節(jié)省精力。

API就是技術(shù)服務(wù)商為客戶提供服務(wù)的方法场勤。

作為一名程序員戈锻,如果沒跟API打過交道同樣是件不可思議的事情。

當(dāng)然我們在互聯(lián)網(wǎng)時代所說的狹義的API概念可能與桌面軟件時代廣義的API有所不同和媳。在維基百科中是這么定義的:API就是軟件系統(tǒng)不同組成部分銜接的約定格遭。由于近年來軟件的規(guī)模日益龐大,常常需要把復(fù)雜的系統(tǒng)劃分成小的組成部分留瞳,編程接口的設(shè)計(jì)十分重要拒迅。程序設(shè)計(jì)的實(shí)踐中,編程接口的設(shè)計(jì)首先要使軟件系統(tǒng)的職責(zé)得到合理劃分她倘。良好的接口設(shè)計(jì)可以降低系統(tǒng)各部分的相互依賴璧微,提高組成單元的內(nèi)聚性,降低組成單元間的耦合程度硬梁,從而提高系統(tǒng)的維護(hù)性和擴(kuò)展性前硫。

API的哲學(xué)意義

生活中,每天的穿衣荧止、吃飯屹电、如廁、睡覺是最基本的訴求罩息。但人類文明發(fā)展至今嗤详,我們穿的衣服、出行搭載的交通工具瓷炮、吃飯的糧食葱色、住的房子等等一切幾乎很少是我們直接參與生產(chǎn)的,在經(jīng)濟(jì)學(xué)中我們稱之為社會分工娘香。分工最大的好處苍狰,就是熟能生巧办龄,讓專業(yè)的人做專業(yè)的事,而需要這些資源的人淋昭,可以拿自己生產(chǎn)的物資間接(貨幣)或直接的交換俐填。

追溯到社會的發(fā)展,從最簡單的采集狩獵時代翔忽,逐漸演變成現(xiàn)在這樣錯綜復(fù)雜的結(jié)構(gòu)英融,在未來它會繼續(xù)的演化產(chǎn)生更細(xì)致的分工。在這個漫長演化過程中歇式,人類的社會文明中逐漸產(chǎn)生了語言驶悟、文字、貨幣材失、契約等這些維系社會結(jié)構(gòu)的基本要素痕鳍;類比信息時代,這些要素就是不同的社會分工群體之間互相調(diào)用的“API”規(guī)范龙巨。

原子笼呆、電子之間的相互作用也好,人類社會的交易合作也好旨别,IT系統(tǒng)之間通訊的API也好诗赌,其哲學(xué)意義的本質(zhì)都是一種契約(規(guī)則),這個所有成員共同維護(hù)的契約讓難以解決的復(fù)雜問題變得簡單秸弛。

API的分類

早期計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用程序有C/S和B/S兩種架構(gòu)模式境肾,這兩種架構(gòu)模式各有優(yōu)缺點(diǎn)。隨著Web技術(shù)越來越成熟胆屿,各種技術(shù)規(guī)范也層出不窮奥喻,后來在大型互聯(lián)網(wǎng)公司中流行起來的開放平臺促成了第三種架構(gòu):OpenAPI。

應(yīng)用程序API

這里主要指的是非Web應(yīng)用程序非迹,它為第三方開發(fā)者提供了可控訪問軟件內(nèi)部功能的接口环鲤。例如:Windows API(https://msdn.microsoft.com/zh-cn/library/windows/desktop/ff818516(v=vs.85).aspx)和Android(https://developer.android.com/guide/index.html),他們通過暴露操作系統(tǒng)核心API憎兽,使應(yīng)用程序在獲得授權(quán)的情況下使用受系統(tǒng)保護(hù)的計(jì)算機(jī)硬件資源(IO設(shè)備冷离、GPS等);瀏覽器同樣為JavaScript準(zhǔn)備了API(https://developer.mozilla.org/zh-CN/docs/Web/API)纯命,從而使HTML西剥、CSS、JavaScript經(jīng)過渲染顯示出各種程序設(shè)定的文字亿汞、圖像及聲音等瞭空。

應(yīng)用程序API通常適用于當(dāng)前設(shè)備內(nèi)的應(yīng)用程序交互。

基于Web的私有API和OpenAPI

和應(yīng)用程序API比起來,RESTful

API咆畏、OpenAPI更被Web程序員所熟知南捂。它們是更高級的API(資源和業(yè)務(wù)屬性更強(qiáng))。根本上它是脫離操作系統(tǒng)的限制旧找,從Web資源的角度定義了API交互的規(guī)則溺健。?

Web服務(wù)端通過RESTful API向客戶端提供數(shù)據(jù)資源的訪問通道,PC瀏覽器钮蛛、iOS鞭缭、安卓等平臺中運(yùn)行的終端APP能夠按照既定的規(guī)則使用服務(wù)器中的數(shù)據(jù),使分布在各處的用戶可以借助不同的設(shè)備連接到服務(wù)中心魏颓,服務(wù)商以此提供娛樂缚去、購物、聊天琼开、內(nèi)容咨詢等。

在私有API中枕荞,還有一種微服務(wù)API柜候,它與微服務(wù)架構(gòu)風(fēng)格息息相關(guān)。但微服務(wù)API一般無法在公網(wǎng)使用的躏精,它使幾個相對簡單的子系統(tǒng)有機(jī)結(jié)合渣刷,形成一個整體并對外提供一個足夠復(fù)雜的服務(wù)。OpenAPI是對外部IT系統(tǒng)提供的一種資源調(diào)用方案矗烛,一般都有嚴(yán)格的鑒權(quán)規(guī)則辅柴,來確保資源被安全的使用。

用一張表格比較不同API的特點(diǎn):

OpenAPI會成為IT系統(tǒng)的標(biāo)準(zhǔn)功能

現(xiàn)在瞭吃,你可以打開百度碌嘀,搜索關(guān)鍵詞“開放平臺”。瀏覽檢索到的結(jié)果歪架,你會發(fā)現(xiàn)幾乎所有耳熟能詳?shù)幕ヂ?lián)網(wǎng)公司都有自己的開放平臺生態(tài)股冗,他們通過OpenAPI讓開發(fā)者可以方便的使用他們的服務(wù),并以此擴(kuò)大自己的影響力和蚪。

一個既成事實(shí)是:沒有API止状,所有的IT系統(tǒng)都會成為數(shù)據(jù)孤島;一個IT系統(tǒng)的OpenAPI被其它IT系統(tǒng)調(diào)用的規(guī)模攒霹,是這個IT系統(tǒng)價值的關(guān)鍵指標(biāo)怯疤。我認(rèn)為,IT系統(tǒng)之間的API經(jīng)歷了3個階段:

以懶豬行( 阿里云API應(yīng)用創(chuàng)新大賽參賽企業(yè))的模式和經(jīng)驗(yàn)為例:懶豬作為旅業(yè)S2B平臺Top1催束,掌握豐富的境外目的地落地資源集峦,為了把這些資源的價值最大化,我們充分借助各大OTA平臺的OpenAPI向分銷商家賦能,讓懶豬的S端資源與國內(nèi)的旅業(yè)生態(tài)無縫接合少梁。同時洛口,在未來懶豬會借助OpenAPI系統(tǒng),讓下單凯沪、訂單處理等過程變得可以程序化第焰,使與合作伙伴業(yè)務(wù)能力的全面對接成為可能。這對業(yè)務(wù)團(tuán)隊(duì)的人效提升是相當(dāng)可觀的妨马,在IT時代我們應(yīng)當(dāng)這么做挺举,像馬克思說的:科技是第一生產(chǎn)力。

阿里云已將其業(yè)務(wù)能力完全API化烘跺,并提供多語言SDK湘纵。它憑借一套OpenAPI,讓開發(fā)者可以通過內(nèi)部編程的方式靈活的部署配置公有云產(chǎn)品滤淳,而且OpenAPI使得調(diào)用云端資源變得比使用自己本地的資源還方便梧喷,IT系統(tǒng)之間的合作不就應(yīng)該是這樣子嘛。建議訪問https://api.aliyun.com感受一下脖咐。

最后铺敌,以“Gall’s Law”結(jié)尾

A complex system thatworks is invariably found to have evolved from from a simple system thatworked.

A complex systemdesigned from scratch never works and cannot be made to work.You have to startover,beginning with a working simple system.

***"A simplesystem may or may not work.”

互聯(lián)網(wǎng)時代的上半場還沒有結(jié)束,API會讓“互聯(lián)”二字演繹的更加透徹屁擅,讓承載人類文明的全球信息系統(tǒng)更加緊密相連偿凭。

擴(kuò)展閱讀

[1] 理解面向HTTP API的REST和RPC (http://www.oschina.net/translate/understanding-rest-and-rpc-for-http-apis)

[2] OpenAPI規(guī)范 (https://github.com/OAI/OpenAPI-Specification)

[3] API文檔規(guī)范Swagger UI (https://swagger.io/docs/specification/about/)

簡短介紹

PC成就了Web,Web成就了大數(shù)據(jù)和云計(jì)算派歌,大數(shù)據(jù)和云計(jì)算又將成就人工智能弯囊,API作為一個關(guān)鍵的線索始終貫穿其中,將分散在互聯(lián)網(wǎng)世界各處的信息和服務(wù)連接胶果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匾嘱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子早抠,更是在濱河造成了極大的恐慌奄毡,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贝或,死亡現(xiàn)場離奇詭異吼过,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咪奖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門盗忱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人羊赵,你說我怎么就攤上這事趟佃∩纫ィ” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵闲昭,是天一觀的道長罐寨。 經(jīng)常有香客問我,道長序矩,這世上最難降的妖魔是什么鸯绿? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮簸淀,結(jié)果婚禮上瓶蝴,老公的妹妹穿的比我還像新娘。我一直安慰自己租幕,他們只是感情好舷手,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著劲绪,像睡著了一般男窟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贾富,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天歉眷,我揣著相機(jī)與錄音,去河邊找鬼祷安。 笑死,一個胖子當(dāng)著我的面吹牛兔乞,可吹牛的內(nèi)容都是我干的汇鞭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼庸追,長吁一口氣:“原來是場噩夢啊……” “哼霍骄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起淡溯,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤读整,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咱娶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體米间,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年膘侮,在試婚紗的時候發(fā)現(xiàn)自己被綠了屈糊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡琼了,死狀恐怖逻锐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤昧诱,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布晓淀,位于F島的核電站,受9級特大地震影響盏档,放射性物質(zhì)發(fā)生泄漏凶掰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一妆丘、第九天 我趴在偏房一處隱蔽的房頂上張望锄俄。 院中可真熱鬧,春花似錦勺拣、人聲如沸奶赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毅戈。三九已至,卻和暖如春愤惰,著一層夾襖步出監(jiān)牢的瞬間苇经,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工宦言, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扇单,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓奠旺,卻偏偏與公主長得像蜘澜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子响疚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理鄙信,服務(wù)發(fā)現(xiàn),斷路器忿晕,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,298評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫装诡、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,120評論 4 61
  • 美蘭和丈夫雨生都是七零后践盼。美蘭是農(nóng)村姑娘而雨生是縣水泥廠的工人鸦采。當(dāng)初美蘭嫁給雨生主要原因是雨生是工人,自己可...
    水草梅花閱讀 167評論 0 0
  • 問題還是那個問題咕幻,但你已經(jīng)不是當(dāng)初的你了赖淤。 A. 我在現(xiàn)在的工作中有沒有獲得成長; 我是為數(shù)不多一直和學(xué)生一起成長...
    守住這塊熱土閱讀 138評論 0 0