在使用 SOAP 的系统中,REST 的传统对应物是什么?



我有很多次听到REST与SOB的比较,它已被揭穿为苹果与梨的比较(例如,在这里,在stackoverflow上:SOAP vs REST(差异((

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

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

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

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

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

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

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 用于保护事务性服务(也可能是在服务器上更新复杂状态的情况下(。

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

最新更新