Java中的SOAP和RESTful Web服务之间的主要区别

2022-08-31 05:32:37

现在,我对 SOAP 和 RESTful 服务之间的区别有了一点了解。

我的问题是我什么时候应该使用SOAP,什么时候应该使用RESTful;在性能/速度或请求处理方面,哪一个“更好”?

我第一次在RESTful(Java)中实现它,我想更多地了解它;我以前处理过 SOAP。

这是这篇文章的后续问题。


答案 1

REST几乎总是会更快。SOAP 的主要优点是,它为服务提供了一种机制,用于向客户端描述自己,并公布它们的存在。

REST更加轻量级,几乎可以使用任何工具实现,从而降低带宽和缩短学习曲线。但是,客户必须知道要发送什么以及要期待什么。

通常,当您向外部世界发布复杂或可能发生变化的 API 时,SOAP 将更有用。除此之外,REST通常是更好的选择。


答案 2

REST 与 SOAP Web Services

我看到现在很多新的Web服务都是使用REST风格的架构而不是SOAP架构实现的。让我们退后一步,解释一下REST是什么。

什么是 REST Web 服务?

首字母缩略词REST代表表示状态传输,这基本上意味着每个唯一的URL都是某个对象的表示形式。您可以使用HTTP GET获取该对象的内容,以将其删除,然后可以使用POST,PUT或删除来修改该对象(实际上,大多数服务都使用POST)。

谁在使用 REST?

雅虎的所有网络服务都使用REST,包括FlickrDelicious

API使用它,pubsub,bloglines,Technorati,eBay和Amazon都有REST和SOAP的Web服务。

谁在使用 SOAP?

Google在实现他们的Web服务以使用SOAP时保持一致,除了Blogger,它使用XML-RPC。您还可以在许多企业软件中找到 SOAP Web 服务。

休息与肥皂

您可能已经注意到,我提到的使用REST API的公司已经存在了很长时间,他们的API大多是今年推出的。因此,如果创建Web服务可能很时髦,那么REST绝对是创建Web服务的时尚方式(让我们面对它,你用肥皂洗,当你累了的时候休息)。REST Web服务的主要优点是:

  • 轻量级 - 没有很多额外的XML标记人类可读的结果

  • 易于构建 - 无需工具包。SOAP 也有一些优点:

易于使用 - 有时是刚性 - 类型检查,遵循契约 开发工具 对于使用Web服务,它有时在两者之间折腾更容易。例如,Google的AdWords网络服务确实很难使用(无论如何在ColdFusion中),它使用SOAP标头以及许多其他使其变得困难的东西。相反,亚马逊的REST Web服务有时很难解析,因为它可能是高度嵌套的,并且结果架构可能会根据您搜索的内容而有很大差异。

无论您选择哪种架构,都要确保开发人员可以轻松访问它,并且有良好的文档记录。

弗雷塔格,P.(2005年)。“REST vs SOAP Web Services”。从 http://www.petefreitag.com/item/431.cfm 于 2010 年 6 月 13 日检索