2012-02-04 117 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或任何其他都是可能的。

相关问题