青菜SOAP與蘿蔔REST,請選擇?

青菜SOAP與蘿蔔REST,請選擇?

dzone.com 看到一篇比較 SOAPREST 的文章整理的覺得不錯,簡單翻譯做個筆記。

SOAPREST 都是 Web Service 通訊協定,在 REST 未風行之前,SOAP 長期以來都是 Web Service 服務介面的標準方法。不過,根據 Stormpath 的統計,目前已有超過 70% 的公開 API。

SOAPREST 主要差異

當你在 Internet 上公開一個 API,REST 通過獨立且一致的介面進行操作,用以訪問命名資源。而 SOAP 將應用程式邏輯的元件公開為服務,而不是資料,並且它通過不同的介面來操作。簡而言之,REST 訪問資料,SOAP 透過更標準化的訊息模式集來操作。在大多數情況下,可以使用 SOAPREST 來實現相同結果。

REST 優於 SOAP

  • REST 提供更多元資料格式。SOAP 只有 XML
  • 基於 JSON,REST 被公認是易於處理的。
  • 基於 JSON,REST 提供對瀏覽器更好的支援。
  • REST 提供優越的性能。特別指快取資料。
  • 世界級大公司主要服務協定。
  • REST 一般而言比較快且省頻寬。

SOAP 優於 REST

  • SOAP 是標準 HTTP 協定,能更方便通過防火牆和Proxy而不對協定本身進行修改。
  • 如果你需要處理 ACID 交易,那麼 SOAP 是不錯的方向。
  • SOAP 擁有各種 WS- 擴充服務,擁有高可擴充性。
  • B2B 的世界,安全與穩定重於一切。

Bruce 的一些心得

青菜蘿蔔各有所好,並不一樣是 REST 完勝,例如,之前有一陣子在忙的 B2B Biztalk 專案,在加解密(安全)部分,基於 XMLSOAP 就比 REST 更為合適。但基於 XML 的協定有個很明顯的缺點,就是當來源資料量成長一些些,產出的 XML 資料量會明顯成長很多。資料解析下,拜 JSON.NET 之類的框架(如之前介紹過的 Jil)幫忙,JSON 格式的處理是非常簡單的。但如果有一天,你真的碰到要處理 XML,那麼不要忘記 LINQ to XML 這個技術就好。


沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。