【问题标题】:What is the traditional counterpart of REST in systems using SOAP使用 SOAP 的系统中 REST 的传统对应物是什么
【发布时间】:2019-01-19 01:13:37
【问题描述】:

我多次听到 REST 与 SOAP 的比较,后者已被揭穿为苹果与梨的比较(例如,在 stackoverflow 上:SOAP vs REST (differences)

虽然它们确实是不同的东西,但这个有缺陷的比较告诉我的是,旧的 SOAP 系统将与某种架构风格并驾齐驱,人们错误地将其标记为 SOAP,因为它们是如此紧密耦合。

另外,如果 REST 是一种架构风格,那么它主要使用的通信协议是什么?

总结一下,
REST 之于 X 协议,就像 Y 架构风格之于 SOAP 协议一样。
X 和 Y 是什么?

【问题讨论】:

    标签: rest api soap architecture


    【解决方案1】:

    它们都是解决类似架构问题的两种方法 - 服务之间的松散耦合。我们可以将发布/订阅消息传递、竞争消费者模式等添加到此列表中。在 SOAP 和 ReST 的情况下,它们通常连接 Web 服务,触发业务事务的 SOAP 带来了具体的实现指南,而用于 CRUD 操作的 ReST 只带来了一种模式。

    关于第二点,ReST 通信通常是通过 HTTP 实现的,理论上它可以运行在其他通信协议上,尽管我不知道有任何主流协议。

    【讨论】:

      【解决方案2】:

      你是对的,它们是两种不同的网络协议,它们有不同的用途。

      REST 更现代,更易于理解和编程。 REST 服务通常会公开类似 URL 的 API。请求在 HTTP 请求中传递,而有效负载通常作为 JASON 结构传递。许多(如果不是大多数)公共服务使用 REST。

      REST 的诞生是为了以一种比 SOAP 更简单的方式访问 Web 服务。

      SOAP 是一种较旧且更复杂的协议,专为广泛的安全服务而设计。它更可靠、更安全——例如,如果消息丢失,它的内部协议可以重试,并且它还包括对安全性和数据库事务的强大支持。 SOAP 可以使用 HTTP、SMTP、TCP、UDP 协议进行操作,消息体采用 XML 编码。

      根据应用程序,REST 或 SOAP 仍然可能是正确的选择。他们提出了自己的问题,并在特定情况下有自己的优势。然而,在基于 Web 的公共服务不断发展的世界中,REST 是迄今为止最常见的选择。

      所以真的没有正确的回复:

      REST 对于 X 协议就像 Y 架构风格对于 SOAP 协议一样。 X 和 Y 是什么?

      你可能会说:

      REST 将直接的数据交付服务作为 SOAP 是为了保护事务性服务(也可能是在服务器上更新复杂状态的地方)。

      虽然我相信很多人会想要改进这一点:-)

      【讨论】:

        猜你喜欢
        • 2020-06-21
        • 2011-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-18
        • 2015-07-25
        • 2017-06-03
        • 2013-02-14
        相关资源
        最近更新 更多