歡迎來到上海仝薪網絡科技有限公司官網,上海網站建設公司上海網站制作公司微信網站上海競價托管公司
咨詢,就免費贈送域名與服務器,咨詢熱線:13761675098當前位置: 競價外包 > 建站知識 > 網站建設知識 >
聯系我們
電話咨詢:13761675098
E-mail:[email protected]
地址: 上海市金園一路1118弄

?一個正在被API驅動的互聯網時代

作者/整理:admin 來源:互聯網 2018-02-27

API做為每個重要信息技術趨勢的核心內容,移動設計、云計算、物聯網、大數據及社交網絡等應用都依賴于一個基于web的界面與它們的分布式組件進行連接,為全球范圍內的各個商業領域提供具有創新性和顛覆性的解決方法。而API的使用既是催化劑,也是促成成果的主要力量。

什么是API?

應用程序接口(英文:Application Programming Interface,縮寫API),就是接口,也是通道,負責一個程序和其他軟件的溝通,本質是預先定義的函數。

舉個簡單的栗子,假設物流中“貨物”是數據,存放貨物的“總倉庫”是數據庫,“店鋪”是我們的網站、App。頁面上顯示的內容、數字,以及用戶的操作請求和結果都是需要不停搬運的“貨物”數據,則負責調配分配打包的中轉站就是API,店鋪小哥直接從中轉站取貨就好。

對于軟件提供商來說,開放API,讓別的應用程序來調用,形成生態,軟件才能發揮最大的價值,才能更有生命力。

對于應用開發者來說,有了開放的API,就可以直接調用多家公司做好的功能來做自己的應用,不需要所有的事情都自己操刀,節省精力。

API就是技術服務商為客戶提供服務的方法。

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

當然我們在互聯網時代所說的狹義的API概念可能與桌面軟件時代廣義的API有所不同。在維基百科中是這么定義的:API就是軟件系統不同組成部分銜接的約定。由于近年來軟件的規模日益龐大,常常需要把復雜的系統劃分成小的組成部分,編程接口的設計十分重要。程序設計的實踐中,編程接口的設計首先要使軟件系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。

API的哲學意義

生活中,每天的穿衣、吃飯、如廁、睡覺是最基本的訴求。但人類文明發展至今,我們穿的衣服、出行搭載的交通工具、吃飯的糧食、住的房子等等一切幾乎很少是我們直接參與生產的,在經濟學中我們稱之為社會分工。分工最大的好處,就是熟能生巧,讓專業的人做專業的事,而需要這些資源的人,可以拿自己生產的物資間接(貨幣)或直接的交換。

追溯到社會的發展,從最簡單的采集狩獵時代,逐漸演變成現在這樣錯綜復雜的結構,在未來它會繼續的演化產生更細致的分工。在這個漫長演化過程中,人類的社會文明中逐漸產生了語言、文字、貨幣、契約等這些維系社會結構的基本要素;類比信息時代,這些要素就是不同的社會分工群體之間互相調用的“API”規范。

原子、電子之間的相互作用也好,人類社會的交易合作也好,IT系統之間通訊的API也好,其哲學意義的本質都是一種契約(規則),這個所有成員共同維護的契約讓難以解決的復雜問題變得簡單。

API的分類

早期計算機網絡應用程序有C/S和B/S兩種架構模式,這兩種架構模式各有優缺點。隨著Web技術越來越成熟,各種技術規范也層出不窮,后來在大型互聯網公司中流行起來的開放平臺促成了第三種架構:OpenAPI。

應用程序API

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

應用程序API通常適用于當前設備內的應用程序交互。

基于Web的私有API和OpenAPI

和應用程序API比起來,RESTful API、OpenAPI更被Web程序員所熟知。它們是更高級的API(資源和業務屬性更強)。根本上它是脫離操作系統的限制,從Web資源的角度定義了API交互的規則。 

Web服務端通過RESTful API向客戶端提供數據資源的訪問通道,PC瀏覽器、iOS、安卓等平臺中運行的終端APP能夠按照既定的規則使用服務器中的數據,使分布在各處的用戶可以借助不同的設備連接到服務中心,服務商以此提供娛樂、購物、聊天、內容咨詢等。

在私有API中,還有一種微服務API,它與微服務架構風格息息相關。但微服務API一般無法在公網使用的,它使幾個相對簡單的子系統有機結合,形成一個整體并對外提供一個足夠復雜的服務。OpenAPI是對外部IT系統提供的一種資源調用方案,一般都有嚴格的鑒權規則,來確保資源被安全的使用。

用一張表格比較不同API的特點:

OpenAPI會成為IT系統的標準功能

現在,你可以打開百度,搜索關鍵詞“開放平臺”。瀏覽檢索到的結果,你會發現幾乎所有耳熟能詳的互聯網公司都有自己的開放平臺生態,他們通過OpenAPI讓開發者可以方便的使用他們的服務,并以此擴大自己的影響力。

一個既成事實是:沒有API,所有的IT系統都會成為數據孤島;一個IT系統的OpenAPI被其它IT系統調用的規模,是這個IT系統價值的關鍵指標。我認為,IT系統之間的API經歷了 3 個階段:

以懶豬行( 阿里云API應用創新大賽參賽企業)的模式和經驗為例:懶豬作為旅業S2B平臺Top1,掌握豐富的境外目的地落地資源,為了把這些資源的價值最大化,我們充分借助各大OTA平臺的OpenAPI向分銷商家賦能,讓懶豬的S端資源與國內的旅業生態無縫接合。同時,在未來懶豬會借助OpenAPI系統,讓下單、訂單處理等過程變得可以程序化,使與合作伙伴業務能力的全面對接成為可能。這對業務團隊的人效提升是相當可觀的,在IT時代我們應當這么做,像馬克思說的:科技是第一生產力。

阿里云已將其業務能力完全API化,并提供多語言SDK。它憑借一套OpenAPI,讓開發者可以通過內部編程的方式靈活的部署配置公有云產品,而且OpenAPI使得調用云端資源變得比使用自己本地的資源還方便,IT系統之間的合作不就應該是這樣子嘛。建議訪問https://api.aliyun.com感受一下。

最后,以“Gall’s Law”結尾

A complex system that works is invariably found to have evolved from from a simple system that worked.

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

***"A simple system may or may not work.”

互聯網時代的上半場還沒有結束,API會讓“互聯”二字演繹的更加透徹,讓承載人類文明的全球信息系統更加緊密相連。

擴展閱讀

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

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

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

重庆时时彩官方网站app