比较和对比 REST 和 SOAP Web 服务? [复制]

2024-02-25

我目前发现类似的情况都是使用互联网协议(HTTP)在消费者和提供商之间交换数据。

区别在于:

  1. SOAP是一种基于XML的消息协议,而REST是一种架构风格
  2. SOAP 使用 WSDL 进行消费者和提供者之间的通信,而 REST 仅使用 XML 或 JSON 来发送和接收数据
  3. SOAP通过调用RPC方法来调用服务,REST只是简单地通过URL路径调用服务
  4. SOAP 不会返回人类可读的结果,而 REST 结果可以通过纯 XML 或 JSON 来读取
  5. SOAP 不仅仅基于 HTTP,它还使用其他协议,例如 SMTP、FTP 等,REST 仅基于 HTTP

这就是我所知道的它们之间的差异。谁能纠正我并添加更多内容。


SOAP 使用 WSDL 进行消费者和提供者之间的通信,而 REST 仅使用 XML 或 JSON 来发送和接收数据

WSDL 定义了客户端和服务之间的契约,并且本质上是静态的。在 REST 的情况下,合约有些复杂,由 HTTP、URI、媒体格式和特定​​于应用程序的协调协议定义。与 WSDL 不同,它是高度动态的。

SOAP 不会返回人类可读的结果,而 REST 结果可以通过纯 XML 或 JSON 来读取

这不是真的。纯 XML 或 JSON 根本不是 RESTful。它们都没有定义任何与 REST 相悖的控件(即链接和链接关系、方法信息、编码信息等),因为消息必须是自包含的并协调代理/客户端和服务之间的交互。

通过链接+语义链接关系,客户端应该能够确定下一步的交互步骤,并遵循这些链接并继续与服务进行通信。

消息不必是人类可读的,可以使用神秘的格式并构建完全有效的 REST 应用程序。消息是否可读并不重要。

因此,纯 XML(application/xml) 或 JSON(application/json) 不足以构建 REST 应用程序。使用这些通用媒体类型的子集总是合理的,这些媒体类型具有很强的语义含义并提供足够的控制信息(链接等)来协调客户端和服务器之间的交互。

  • 有关控制信息的更多详细信息,我强烈建议 读这个:http://www.amundsen.com/hypermedia/hfactor/ http://www.amundsen.com/hypermedia/hfactor/
  • 网页链接:https://www.rfc-editor.org/rfc/rfc5988 https://www.rfc-editor.org/rfc/rfc5988
  • 注册链接关系:http://www.iana.org/assignments/link-relations/link-relations.xml http://www.iana.org/assignments/link-relations/link-relations.xml

REST 仅通过 HTTP

事实并非如此,HTTP 使用最广泛,当我们谈论 REST Web 服务时,我们只是假设 HTTP。 HTTP 定义了接口及其方法(GET、POST、PUT、DELETE、PATCH 等)以及可统一用于与资源交互的各种标头。这种一致性也可以通过其他协议来实现。

附: REST 的解释非常简单,但非常有趣:http://www.looah.com/source/view/2284 http://www.looah.com/source/view/2284

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较和对比 REST 和 SOAP Web 服务? [复制] 的相关文章

随机推荐