天天看點

如何差別API、REST API、RESTful API和Web Service之間的異同

當你看到API接口你會想起什麼?是接口、第三方調用、還是API文檔?初看你可能會覺得這太熟悉了,這不是系統開發日常系列嗎?但你仔細想一想,你會發現API的概念在你腦海裡是如此的模糊。如何你通過搜尋引擎檢索API,你會看到類似這樣的資訊:API——Application

Programming

Interface(應用程式程式設計接口),這太抽象了。接下來,我将結合在開發中總結的一些經驗,以最通俗的方式聊聊API、REST

API、RESTful API以及Web Service這四者之間的聯系與差別。

如何差別API、REST API、RESTful API和Web Service之間的異同

1、API 與 REST API

什麼是API?這裡引述維基百科給出的定義:應用程式接口(英語:Application Programming Interface,縮寫:API;又稱為應用程式設計接口)是軟體系統不同組成部分銜接的約定。這個對API的定義太過于廣泛和抽象,而通俗的講,API是一段應用程式與另一段應用程式互相“交流”的方式(協定)。在Web應用程開發中,API是我們通過網絡進行資料檢索的一種主要方式,API文檔将告知你檢索資料的URL清單、查詢參數、請求方式以及響應狀态,其目的是降低Web應用程式開發難度,共享兩個應用程式之間的資料(文本、音頻、視訊、圖檔等),而屏蔽其内部複雜的實作細節。

REST是Representational State Transfer的縮寫,直譯過來就是:表述狀态的轉移。REST API是一組關于如何建構Web應用程式API的架構規則、标準或指導,或者說REST API是遵循API原則的一種架構風格。REST是專門針對Web應用程式而設計的,其目的在于降低開發的複雜度,提高系統的可伸縮性。

現在,了解了API和REST API的基本概念,那這兩者之間有什麼異同?如果按照數學上集合的概念來解釋API與REST API之間的聯系與差別,API是REST API的超集,REST API 是API的子集;所有的REST API都是API,但不是所有的API都是REST API。更通俗的解釋是:所有的男人都是人,但不是所有的人都是男人。

2、REST API 與RESTful API

接下來聊聊REST API與RESTful API之間的異同。很多初學者很容易将這兩者等同起來,認為RESTful API就是REST API,這可能是單純的從字面上去了解了,當你深入的去了解兩者的本質後,你會發現其實不然。REST API是Web API設計的一種規範或者指導原則,而RESTful API則是這中架構設計原則或者規範的一種具體實作方式。也就是說,RESTful API是REST API的非正式實作方式,因為實作REST API的方式有很多,RESTful API隻是其中一種,且沒有完全滿足REST API的所有設計原則,每個開發者在實作REST 架構時的則重點都會有差别。

3、REST與Web Service

3-1、什麼是Web Service?

Web Service提供了在各種平台和/或架構上運作的不同軟體應用程式之間可以進行互操作的标準方法。Web Service的特點是具有良好的互操作性和可擴充性,以及由于使用XML而可以對程式處理過程進行描述。它們可以以松散耦合的方式組合不同的服務以實作複雜的操作。提供簡單服務的程式可以通過互相互動,以提供複雜的增值服務。

兩個Web Service之間主要通過HTTP網絡協定進行通信,如我們熟知的SOA(面向服務的體系架構),主要依賴于XML-RPC和SOAP(Simple Object Access Protocol,即簡單對象通路協定)。

3-2、Web Service的優點

使用Web Service有如下的幾個優點:

• 互操作性:Web Service允許應用程式之間進行通信,交換資料和共享服務。

• 可用性:Web Service的功能可以從簡單的資訊查找到複雜的算法計算。

• 可重用性:Web Service之間可以互相組合,以提供更為複雜的服務,由于其互操作性的特點,可以輕松的在其他的服務中重用Web Service元件,提高了服務的重用率。

• 易于部署:Web Service可以部署在基于Internet标準的容器中,如Apache、Axis2等,以提供HTTP或者WSDL(網絡服務定義語言)驅動的服務。

• 成本低:Web Service是通過打包成Web服務元件進行部署,進而降低了使用的成本。

如何差別API、REST API、RESTful API和Web Service之間的異同

總結

如上所述,我們了解了什麼是API,什麼是REST API,什麼是RESTful API以及Web Service的相關概念。API代表應用程式程式設計接口,是一種較為寬泛的定義或者說是一種協定,作為軟體程式之間互相通信的接口而存在。REST API是API的一個子集,所有的REST API都是API;RESTful API是對REST API架構風格的一種非正式實作方式。API與Web Service都是服務提供者和服務消費者之間的通信手段。

輕易雲內建平台,一套軟體、一個平台,打通業界各大軟體系統與硬體裝置,消除系統之間的資料孤島。内置業界知名各大軟體系統接口,免除使用者技術開發和投入,接口方式靈活,使用安全可靠。對接業界主流資料庫(Oracle、SqlServer、Postgresql、Mysql等),也可對接WebAPI、WebService等。已對接的軟體商系統包括但不限于:SAP、Oracle、用友、金蝶、鼎捷、安達發、泛微、微信、釘釘。已對接的硬體裝置包括但不限于:Fanuc發那科、Brother兄弟、三菱、西門子、海德漢、廣數、華中數控、精雕、寶元、新代、安達發ADT。

輕易雲內建平台助你打通系統及硬體間的通道,是現代企業實作系統內建的完美橋梁。

如何差別API、REST API、RESTful API和Web Service之間的異同
如何差別API、REST API、RESTful API和Web Service之間的異同
如何差別API、REST API、RESTful API和Web Service之間的異同