我有两个系统,一个(我们称之为 S1)公开 RESTful API(我们称之为 WS1),另一个系统(我们称之为 S2)公开 SOAP API(我们称之为 WS2)。
我正在尝试找出一种方法从 S1 获取数据并将其添加到 S2 中。 WS1 公开了添加/获取数据(到 S1 或从 S1)的方法,而 WS2 仅具有添加数据(到 S2)的方法。
这两个 Web 服务可以直接相互通信吗?或者两者之间应该有某种机制。我的猜测是“应该有人来管理他们的讨论”。
你有一个
REST Server
和一个SOAP Server
,它们的两个目标都是等待来自各自客户端的请求——它们实现的操作是否读取和/或写入它们的数据集并不重要,客户端仍然需要发起沟通。
因此,您需要一个桥接客户端来请求从 REST 服务器读取某些内容并请求将某些内容写入 SOAP 服务器。桥梁的其余基础设施取决于您。
您可以编写一个轻量脚本来提取 RESTful 数据并为少数特定的 RESTful 资源推送 SOAP 消息,或者您可以编写一个通用的 REST2SOAP 桥,它可以根据转换约定将 RESTful 资源映射到 SOAP 消息端点。
编写抽象桥客户端将允许您通过直接调用 REST 服务、接收数据、处理数据、直接调用 SOAP 服务并向其发送数据来运行它。如果这是低负载情况,那没问题。
如果我们有很高的数据负载来同步处理事情是不可行的,所以我们引入消息队列。
消息队列的总体优势在于,您可以根据需要启动任意数量的生产者或消费者,具体取决于哪些服务运行速度较慢。
我想知道 Radu 是否将 SOAP 编程为 REST 桥接器。如果有请分享一下。