• 周四. 8月 11th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

了解SOAP 与 REST

admin

11月 28, 2021

使用REST还是SOAP,这个问题已经有一段时间了。实际上,它们只是同一个问题的两个答案:如何访问Web服务。

SOAP(简单对象访问协议)是基于标准的Web服务访问协议,已经存在了很长时间。最初由Microsoft开发的SOAP并不像首字母缩略词所说的那么简单。

REST(Representational State Transfer)是另一种标准,是针对 SOAP 的缺点而制定的。它试图解决 SOAP 的问题,并提供一种更简单的访问 Web 服务的方法。

相似之处

虽然 SOAP 和 REST 在 HTTP 协议上有相似之处,但 SOAP 是一组比 REST 更严格的消息传递模式。SOAP 中的规则很重要,因为没有它们我们就无法实现任何级别的标准化。REST 作为一种架构风格,不需要处理,自然更加灵活。SOAP 和 REST 都依赖于每个人都同意遵守的完善规则,以便交换信息。

SOAP 快速概览

SOAP仅依靠XML来提供消息传递服务。Microsoft 最初开发 SOAP 是为了取代在 Internet 上运行不佳的旧技术,例如分布式组件对象模型 (DCOM) 和公共对象请求代理体系结构 (CORBA)。这些技术失败,因为它们依赖于二进制消息传递。SOAP 使用的 XML 消息在 Internet 上工作得更好。
首次发布后,Microsoft 将 SOAP 提交给 Internet 工程任务组 (IETF),并在那里对其进行了标准化。SOAP 旨在支持扩展,因此它具有与之相关的各种其他首字母缩略词和缩写词,例如 WS-Addressing、WS-Policy、WS-Security、WS-Federation、WS-ReliableMessaging、WS-Coordination、WS-AtomicTransaction和WS-RemotePortlet。
重点是 SOAP 是高度可扩展的,但只能使用特定任务所需的部分。例如,当使用每个人都可以免费使用的公共 Web 服务时,实际上对 WS-Security 的需求并不大。

难度取决于编程语言

用于在 SOAP 中发出请求和接收响应的 XML 可能变得极其复杂。在某些编程语言中,需要手动构建这些请求,这会产生问题,因为 SOAP 不能容忍错误。但是,其他语言可以使用 SOAP 提供的快捷方式。它们可以减少创建请求和解析响应所需的工作量。事实上,在使用 .NET 语言时,甚至从未见过 XML。
部分神奇之处在于 Web 服务描述语言 (WSDL)。这是另一个与 SOAP 相关联的文件。它提供了 Web 服务如何工作的定义,创建对它的引用时,IDE 可以完全自动化该过程。因此,使用 SOAP 的难度在很大程度上取决于使用的语言。

REST 快速概览

REST 提供了一种更轻量级的替代方案。许多开发人员发现 SOAP 很麻烦且难以使用。例如,在 JavaScript 中使用 SOAP 意味着编写大量代码来执行简单的任务,因为每次都必须创建所需的 XML 结构。
REST(通常)不使用XML发出请求,而是依靠简单的URL。在某些情况下,必须提供附加信息,但大多数使用 REST 的 Web 服务完全依赖于使用 URL 方法。REST 可以使用四种不同的 HTTP 1.1 动词(GET、POST、PUT 和 DELETE)来执行任务。
与 SOAP 不同,REST 不必使用 XML 来提供响应。可以找到基于 REST 的 Web 服务,这些服务以命令分隔值 (CSV)、JavaScript 对象表示法 (JSON) 和真正简单的联合 (RSS) 格式输出数据。关键是可以获得所需的输出,该输出的形式易于在您的应用程序使用的语言中解析。

Soap 优势

与 REST 相比,SOAP 具有以下优势:
• 独立于语言、平台和传输(REST 需要使用 HTTP)
• 在分布式企业环境中运行良好(REST 假设直接点对点通信)
• 标准化
• 提供重要的WS* 标准形式的预构建可扩展性
• 内置错误处理
• 与某些语言产品一起使用时的自动化

REST 优势

REST 在大多数情况下更易于使用且更灵活。与 SOAP 相比,它具有以下优势:
• 无需昂贵的工具即可与 Web 服务交互
• 学习曲线更小
• 高效(SOAP 对所有消息使用 XML,REST 可以使用更小的消息格式)
• 快速(无需大量处理)
• 更接近设计哲学中的其他网络技术

对于 REST 与 SOAP 的问题,最终答案是:“依赖”。每个协议都有明确的优点和缺点。选择 SOAP 还是 REST 取决于使用的编程语言、使用它的环境以及要求。请记住,不必重新发明轮子。令人惊奇的是,公司花费巨资来创建已经存在的Web服务(并做得更好)。尽可能寻找免费的替代品。在许多情况下,Web 服务的选择也决定了您对协议的选择。无论为 Web 服务选择 SOAP 还是 REST,确保彻底测试 API。准备好!API拥有一整套功能、性能、安全性和虚拟化工具,可满足API 测试需求。

翻译:Eolinker——国内流行的接口管理及自动化测试工具

发表评论

您的电子邮箱地址不会被公开。