| 缺點 | 1.事務(wù)性支持弱。 | 1. 性能差。 |
| 結(jié)論 | 1.更適合互聯(lián)網(wǎng)API服務(wù)貨幣化
2.輕量級企業(yè)集成。 | 1. 更適合企業(yè)內(nèi)部集成、復(fù)雜業(yè)務(wù)場景。 |

1.成熟度

兩者的根本區(qū)別:SOAP 是一種協(xié)議,而 REST 是一種架構(gòu)風(fēng)格

SOAP 是一項標準協(xié)議,其最初的設(shè)計意圖是讓使用不同語言且在不同平臺上構(gòu)建的應(yīng)用之間進行通信。由于 SOAP 是一項協(xié)議,因此它會施加一些內(nèi)置規(guī)則,從而增加復(fù)雜性和開銷,并可導(dǎo)致頁面加載時間延長。但是,這些標準還提供了內(nèi)置合規(guī)性,包括安全性、原子性、一致性、隔離性和持久性(ACID),此外,支持廠商比較多,使其更適合企業(yè)內(nèi)部的應(yīng)用集成、數(shù)據(jù)集成

REST是一種架構(gòu)風(fēng)格,正如 Roy Fielding 在論文“Architectural Styles and the Design of Network-based Software Architectures”(架構(gòu)模式以及基于網(wǎng)絡(luò)的軟件架構(gòu)的設(shè)計)中定義的那樣,只要 API 符合 RESTful 系統(tǒng)的 6 個導(dǎo)向性約束,就算作 RESTful API。雖然看似有很多約束需要遵循,但是這些約束遵循起來要比遵循規(guī)定的協(xié)議容易得多。因此,在互聯(lián)網(wǎng)API領(lǐng)域,RESTful API 現(xiàn)在變得比 SOAP 更為普及。

2.請求報文協(xié)議不同

Web API的消息規(guī)格為URL請求;SOAP API的消息格式為SOAP規(guī)范。從消息封裝、編碼/解碼上,Web API有明顯的并發(fā)性能優(yōu)勢。

由于SOAP消息格式在發(fā)布時聲明,可以方便一些高級工具調(diào)用方實現(xiàn)可視化的參數(shù)映射、配置化的調(diào)用。

例如,一個Web API請求消息

https://b2b.awspaas.com/openapi
?timestamp=1439277618461
&sig_method=HmacMD5
&cmd=app.install.check
&appId=com.actionsoft.apps.notification
&access_key=Salesforce#1
&format=json
&sig=DE90336BEDB0C3D3FE6DEE2FF0DF11AC

例如,一個SOAP API請求消息

 com.actionsoft.apps.notification

3.響應(yīng)報文協(xié)議不同

Web API可以返回JSON/XML結(jié)果,尤其是JSON數(shù)據(jù)格式是當(dāng)今Web和移動端開發(fā)的首選規(guī)范;SOAP API返回一個XML的消息對象。從數(shù)據(jù)結(jié)果封裝、編碼/解碼上,Web API有明顯的并發(fā)性能優(yōu)勢,同時JSON結(jié)構(gòu)有助于減少網(wǎng)絡(luò)流量。

由于SOAP響應(yīng)格式在發(fā)布時聲明,可以方便一些高級工具調(diào)用方實現(xiàn)可視化的結(jié)果映射、配置化的調(diào)用。

例如,一個Web API響應(yīng)消息

{
"data" : true,
"result" : "ok"
}

例如,一個SOAP API響應(yīng)消息

 true

4.安全機制不同

  1. Web API(REST API)可以基于HTTPS,而SOAP API可以基于WS-Security規(guī)范對消息加密時也可以使用HTTPS
  2. Web API(REST API)的認證基于訪問憑證 ( access_key )和私鑰 ( secret )的簽名摘要驗證,而SOAP API的認證基于WS-Security規(guī)范的用戶名密碼或者x509

5.客戶端調(diào)用方式不同

SOAP API需要一個比較重的SOAP協(xié)議棧,會遇到跨語言、版本的SOAP互操作問題;Web API僅需要客戶端支持HTTP(s)傳輸協(xié)議。

6.并發(fā)處理能力的不同

測試環(huán)境

<blockquote id="qyq5j"><tt id="qyq5j"><b id="qyq5j"></b></tt></blockquote>
  • 說明
    AWS PaaS服務(wù)器 16核、16G內(nèi)存、SOAPAPI
  • API網(wǎng)關(guān)
    <abbr id="qyq5j"><var id="qyq5j"><strong id="qyq5j"></strong></var></abbr>
    <nobr id="qyq5j"><listing id="qyq5j"><strong id="qyq5j"></strong></listing></nobr>