Web services 让REST与SOAP通信
我有两个系统,一个(我们称之为S1)公开RESTful API(我们称之为WS1),另一个(我们称之为S2)公开SOAP API(我们称之为WS2) 我正试图找到一种从S1获取数据并将其添加到S2的方法。 WS1公开了添加/获取数据(到S1/从S1)的方法,而WS2只有添加数据(到S2)的方法 这两个web服务是否可以直接在彼此之间通信,或者是否应该在两者之间存在某种机制。我的猜测是“应该有人管理他们的讨论。”客户在哪里? 您有一个Web services 让REST与SOAP通信,web-services,rest,soap,Web Services,Rest,Soap,我有两个系统,一个(我们称之为S1)公开RESTful API(我们称之为WS1),另一个(我们称之为S2)公开SOAP API(我们称之为WS2) 我正试图找到一种从S1获取数据并将其添加到S2的方法。 WS1公开了添加/获取数据(到S1/从S1)的方法,而WS2只有添加数据(到S2)的方法 这两个web服务是否可以直接在彼此之间通信,或者是否应该在两者之间存在某种机制。我的猜测是“应该有人管理他们的讨论。”客户在哪里? 您有一个REST服务器和一个SOAP服务器,这两个服务器的目标都是等待来
REST服务器
和一个SOAP服务器
,这两个服务器的目标都是等待来自各自客户机的请求——不管它们执行的操作是否读取和/或写入数据集,客户机仍然需要启动通信
弥合差距。
因此,您需要一个桥接客户端来请求从REST服务器读取某些内容,并请求将某些内容写入SOAP服务器。桥梁的其余基础设施由您决定
您可以编写一个轻量级脚本,用于提取RESTful数据并为少数特定RESTful资源推送SOAP消息,也可以编写一个通用REST2SOAP桥,它可以根据转换约定将RESTful资源映射到SOAP消息端点
直接队列与消息队列。
编写抽象桥客户机将允许您通过直接调用REST服务、接收数据、处理数据、直接调用SOAP服务并向其发送数据来运行它。如果这是一个低负荷的情况,那很好
如果我们有高负载的数据来处理,那么同步处理是不可行的,所以我们引入了消息队列
制作人:
- 从REST服务读取数据李>
- (可能)将其处理为本地形式(桥接客户端理解,如数组和对象)李>
- 然后将其序列化(序列化、json_编码等)李>
- 将其置于消息队列中
- 听消息队列李>
- 当它接收到新消息时,它将其反序列化李>
- 处理它李>
- 将其发送到SOAP服务