SOAP 和 REST 的区别
很多人在软件开发中会分不清 SOAP 和 REST 方式,今天就来浅谈一下两者之间的区别。
通俗理解
通俗的来说,互联网时代,通信变得更加简单了,只要有网络就可以实现通信。通信需要遵循的一个规则就是协议。Rest 和 Soap 我们可以理解为信件和明信片,它们是建立在 Http 协议的通信方式。
Soap 是建立在 Http 之下的一种软件程序之间的通讯协议,
信封
Rest 是一种规范,主流的 Web API ,核心就是资源,一个资源可以就是被标识的实体,有具体的名称和地址。
邮票
Soap 主要通过 xml 格式传递消息,而 Rest 可以使用 xml.json.html 。
邮政员
TCP/IP 协议。
SOAP 协议
SOAP(Simple Object Access Protocol 简单对象访问协议),是交换数据的一种协议规范,是一种轻量的、简单的、基于 XML(标准通用标记语言下的一个子集)的协议,它被设计成在 Web 上交换结构化的和固化的信息。

REST 风格
REST(Representational State Transfort) 形式上应该表述为客户端通过申请资源来实现状态的转换,在这个角度系统可以看成一台虚拟的状态机。
REST API 就是把数据以资源的形式暴露出来,并使用标准的 Http 方法来代表创建、读取、更新和删除等
不用的方法表明了要执行的动作,不同的 http 方法作用于同一个 URL 上可实现不同的功能按照REST原则设计的软件、体系结构,通常被称为 “ REST 式的”(RESTful),REST 应该满足这样的特点:
-
客户端和服务器结构
-
连接协议具有无状态性
-
能够利用 Cache 机制增进性能
-
层次化的系统
-
按需代码

区别
- SOAP 是协议,REST 是架构风格。
SOAP Web Services 的开发需要遵循 SOAP 协议。
REST Web services 的开发需要遵循 REST 的架构风格。
一个 REST Web service 也可以使用 SOAP 协议。
- 消息格式
SOAP 支持 XML 消息格式,REST 支持平文,HTML,XML,JSON 格式消息
- 驱动
SOAP 是功能驱动, REST 是数据驱动或资源驱动
- 安全性
SOAP 更安全,不仅像 REST 一样支持 SSL ,还增加了企业及安全特性的 WebServices -Security,因此它能提供通过中介的身份验证,而不仅仅是端对端的验证(SSL)。
可以内置的 ACID ,指数据库事务正确执行的四个基本要素的缩写,包含,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
而 REST 受限于 HTTPS,HTTP,本身无法提供两阶段提交分布式十五资源,但 SOAP 可以。
SOAP 的优势
与 REST 相比,SOAP 有以下优势:
-
独立于语言、平台、传输
-
在分布式企业环境中运行良好
-
标准化
-
提供重要的WebServices
-
内置错误处理

REST 优势
REST 在大多数情况下更易于使用且更灵活。与 SOAP 相比,它具有以下优势:
-
无需昂贵的工具即可与 Web 服务交互
-
学习曲线更小
-
使用更小的信息格式完成高效信息传递
-
无需大量处理,更快速传递信息

总结
每个协议都有明确的优点和缺点。选择 SOAP 还是 REST 取决于 使用的编程语言、使用环境要求。
在许多情况下,Web 服务的选择也决定了我们对协议的选择。无论为 Web 服务选择 SOAP 还是 REST,确保能够彻底测试 API 。使用拥有一整套功能、性能、安全性的 API管理工具,可满足 API 更高更全面的测试需求。
这里我推荐图中演示工具 Eolink,它一款能设计、管理 API,一键生成 API 文档的管理工具,除此之外还能直接打通接口测试,一键发起 API 测试,方便快捷且功能强大。感兴趣可自行使用:www.eolink.com