尽管 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-AtomicTransactions 是必需的。

李>

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 脚本上传的图像中的可识别类型。为啥?

为啥在启动 REST 服务时添加注解 FormDataParam 会引发异常?

具有 REST 身份验证 API 的节点快递网站 - CORS 问题