2012-02-04 72 views
23

JSON與REST關聯。通過REST,您還可以使用XML。那麼爲什麼不反過來呢?帶JSON的SOAP僅用於數據格式,同時保留用於某些企業方案中有用的合同方面的wsdl?爲什麼不使用JSON進行SOAP?

更新:所以在評論墊點http://en.wikipedia.org/wiki/SOAPjr 但是,這並不回答我的問題:

,如果它是最好的2個品種爲什麼近無人包括我從來沒有聽說過呢?是不是因爲像SOAP一樣,人們只是遵循了一個傳統,直到某個大師醒來哭泣:我們至少對某種企業應用程序再次採用了錯誤的方式?

+1

http://en.wikipedia.org/wiki/SOAPjr – Mat 2012-02-04 10:53:24

+0

好的謝謝,我不知道它確實存在,但仍然沒有回答我的問題:因爲它結合了兩個爲什麼沒有人聽說過它並使用它呢? – user310291 2012-02-04 11:23:03

回答

37

完全可能使用JSON作爲SOAP的有效載荷。

人們不這樣做的主要原因我猜,如果你已經從XML的限制轉移了,那麼爲什麼不排除SOAP。 JSON源自JavaScript和簡單的ajax調用可能意味着SOAP對人們來說太過分了

與SOAP的嚴格契約以及使用XSD進行XML數據驗證通常也是交織在一起的。 SOAP標準確實將XML指定爲有效內容,但是您可以在CDATA標記內執行任何您想要的操作。但是框架可能是假設你的有效載荷是XML的。因此,使用兩種不同的可達性理論可能會發生衝突。

但是,如果你願意,通過一切手段使用JSON和SOAP。

+4

真正的問題是,現在很多程序員把JSON等同於REST。人們正在構建向JSON請求提供JSON響應並將其稱爲REST的API。你想要元數據嗎?沒有機會。想要SOAP協調或安全性?沒有機會。只要它的JSON,並因此推斷(錯誤地),REST – Sentinel 2015-07-01 21:47:59

24

你可以用JSON做同樣的事情,就像Mat說的那樣 - 那很好。

但它不是SOAP--它只是就像 SOAP。

SOAP使用定義的XML

SOAP消息被指定爲一個XML信息集,其評論,元素,屬性 ,命名空間和字符信息項能夠被 序列化爲XML 1.0。 (SOAP v1.2, part 1)

你當然可以嵌入一個JSON字符串的SOAP XML,作爲一個參數的值,這是一個有點毛,但我不能看到一個普遍的原因不,用於文檔式SOAP。

REST沒有指定表示(即內容)必須是什麼 - 它是一個architectural style而不是一個協議標準,所以JSON,XML或任何其他都是可能的。

相關問題