SOAP - 重点是什么?

Dan*_*man 51 rest soap

我的意思是,真的,SOAP有什么意义?

Web服务已经存在了一段时间,有一段时间似乎"SOAP"和"Web服务"这两个术语在很大程度上是可以互换的.然而,SOAP总是显得笨拙而且对我来说过于复杂.

然后REST出现了,突然间Web服务变得有意义了.

正如Joel Spolsky所说,给程序员一个REST URL,他们可以立即开始使用该服务,并将其搞清楚.

SOAP在WSDL和大量冗长的XML背后进行了混淆,尽管是基于Web的,但您不能做任何像使用Web浏览器访问SOAP服务那样简单的事情.

所以我的问题的实质是:

  • 是否有任何理由选择SOAP over REST?
  • 你现在正在使用SOAP吗?如果界面是REST会更好吗?
  • 我错了吗?

Pet*_*ham 12

正如Joel Spolsky所说,给程序员一个REST URL,他们可以立即开始使用该服务,并将其搞清楚.

然而,如果服务具有良好指定的机器可读合同,那么程序员就不必浪费任何时间来计算它.

(并不是说WSDL/SOAP必然是良好实现良好指定合同的一个例子,但这是WSDL的要点)

最初,SOAP是一个简单的协议,允许您向消息添加标头,并具有标准化的对象实例到XML结构的映射.将处理元数据放入消息中简化了客户端代码,这意味着您可以非常简单地持久化并对消息进行排队.

我在2001年构建SOAP服务时从未需要头处理细节.这是在WSDL之前,然后使用GET获取信息和查询是正常的(与大多数声称是REST的应用程序没有什么不同; REST有更多在使用超链接进行服务发现方面)和POST用SOAP有效负载来执行操作.创建资源的那些操作会将创建的资源的URL返回给客户端,然后客户端可以获取资源.我认为事实上,WSDL只能在RPC方面进行思考,而不是创建资源使SOAP失去情节的行为.


dkr*_*etz 6

这个话题在为什么肥皂被认为很厚的时候被充分讨论.


Jon*_*ock 6

我认为它的方式,SOAP可能更"灵活",但结果却太复杂了(你提到了WSDL,这对我个人来说总是一个绊脚石).

得到了 REST.这很简单.我可能会看到的唯一缺点是,您要限制自己针对单个资源的4个基本操作,这可能不完全符合您查看数据的方式.


Dan*_*man 6

在做一些研究以了解这里的一些答案(特别是John Saunders')时,我发现这篇文章http://harmful.cat-v.org/software/xml/soap/simple SOAP比我想象的更疯狂......


Dan*_*man 2

现在看来,WSI同意 SOAP 不再有任何意义,因为他们已经宣布将不再作为一个独立实体存在。

关于该公告的有趣文章和一些评论:http://blogs.computerworlduk.com/simon-says/2010/11/the-end-of-the-road-for-web-services/index.htm

编辑为完全准确地回应约翰·桑德斯。