尽管 REST 具有以下优势,为啥 Google 仍使用大量 SOAP?
Posted
技术标签:
【中文标题】尽管 REST 具有以下优势,为啥 Google 仍使用大量 SOAP?【英文标题】:Why Google uses a lot of SOAP in spite of the following advantages in REST?尽管 REST 具有以下优势,为什么 Google 仍使用大量 SOAP? 【发布时间】:2015-11-18 02:35:20 【问题描述】:尽管 REST 具有以下优势,为什么 Google 仍使用大量 SOAP。
-
REST 是一种架构风格。
REST 代表 REpresentational State Transfer。
REST 可以使用 SOAP Web 服务,因为它是一个概念,可以使用任何协议,例如 HTTP、SOAP。
REST 使用 URI 公开业务逻辑。 REST (通常)使用 URI 和(GET、PUT、POST、DELETE)等方法来公开资源。 JAX-RS 是用于 RESTful Web 服务的 Java API。
REST 没有像 SOAP 那样定义太多标准。
REST 比 SOAP 需要更少的带宽和资源。
RESTful Web 服务从底层传输继承安全措施。
REST 允许不同的数据格式,例如纯文本、html、XML、JSON 等。
REST 比 SOAP 更受欢迎。
REST 是一种架构风格,不像 SOAP 是一种标准化协议。
REST 遵循无状态模型
REST 具有更好的性能和可扩展性。可以缓存 REST 读取。 JSON 通常更适合数据并且解析速度更快
JSON 架构没有公认的标准。
肥皂
-
SOAP 是一种协议。
SOAP 代表简单对象访问协议。
SOAP 不能使用 REST,因为它是一种协议。
SOAP 使用服务接口来公开业务逻辑。 JAX-WS 是用于 SOAP Web 服务的 Java API。
SOAP 定义了要严格遵循的标准。
SOAP 比 REST 需要更多的带宽和资源。
SOAP 定义了自己的安全性。
SOAP 只允许 XML 数据格式。
SOAP 不如 REST 受欢迎。
SOAP 实际上与底层传输协议无关,可以通过几乎任何协议发送,例如 HTTP、SMTP、TCP 或 JMS。
SOAP 有一个标准规范
SOAP 也有状态实现规范。
无法缓存基于 SOAP 的读取。
编组成本较高,但 XML 的核心优势之一是互操作性。对于 XML,模式允许明确定义消息格式。 XML 下的数据类型和控制也更加丰富。
提前致谢。
【问题讨论】:
您已经列出了 REST 的优点,但您是否也列出了 SOAP 的优点?另外,你有没有列出两者的缺点? 我已编辑问题并更新了 cmets。请详细帮我。 【参考方案1】:Steve Francia 有一篇关于这个主题的很好的比较文章,尽管我的印象(史蒂夫提到)Google 已经从 SOAP 转移到 REST。如果您询问特定的 API,我会很好奇?那么也许我可以针对该 API 制定更具体的答案。
然而,总体而言,虽然 REST 在几乎所有方面都更胜一筹,但这就是您要使用 SOAP 的原因:
Web Service Security - 除了 SSL 之外,SOAP 还支持 WS-Security
,它通过中介添加了一些企业安全功能和身份,而不仅仅是点对点 (SSL)。它还提供了数据完整性和数据隐私的标准实现。
Web Service Atomic Transaction - 如果您需要符合 ACID 的事务(尽管可能不是 Google 使用它的原因),WS-AtomicTransaction
s 是必需的。
Web Service Reliable Messaging - SOAP 通过WS-ReliableMessaging
提供标准消息传递,支持内置成功/重试逻辑,甚至通过 SOAP 中介提供端到端可靠性。
【讨论】:
以上是关于尽管 REST 具有以下优势,为啥 Google 仍使用大量 SOAP?的主要内容,如果未能解决你的问题,请参考以下文章
尽管身份验证完成,为啥 SpringBoot Security 不向 REST 客户端返回任何响应
尽管没有任何错误或异常,为啥 Stripe Google Pay 按钮无法在 UI 上为我呈现?
为啥我从 google drive rest api 得到服务器回复被禁止?
Wordpress 说,“rest_upload_sideload_error”表示从 Google Apps 脚本上传的图像中的可识别类型。为啥?