如何在mule中将请求的各个部分回显到响应中
上下文: 我有一个基于XML的API。我使用这个API获取请求。然后我有一些转换器,可以将这些请求转换为第三方特定的API。然后,我使用转换后的对象进行web服务调用,得到一些响应,并将其转换回API对象 有一句话是这样的:如何在mule中将请求的各个部分回显到响应中,mule,Mule,上下文: 我有一个基于XML的API。我使用这个API获取请求。然后我有一些转换器,可以将这些请求转换为第三方特定的API。然后,我使用转换后的对象进行web服务调用,得到一些响应,并将其转换回API对象 有一句话是这样的: MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES MY_API_REQ -> Store parts -> 3RD_PARTY_AP
MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES
MY_API_REQ -> Store parts -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES -> Retrieve and set stored parts
非常简单
问题:
现在,我想在我的回复中回复我请求的一些部分
假设我的请求API有一个Echo组件,它也必须出现在响应中。在我看来,最简单的解决方案是,在将请求转换为第三方API之前,我将此Echo组件存储在某个地方(例如:会话范围内的头属性)。然后在响应分支上检索这个Echo组件,并将其设置在响应对象上
有一句话是这样的:
MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES
MY_API_REQ -> Store parts -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES -> Retrieve and set stored parts
问题:此解决方案不会让我觉得我在使用最好的解决方案。部分原因我担心在流的执行过程中会有我不知道的复制机制,这让我担心性能
我正在同步地做这一切,所以我应该一直在同一条线上,所以也许我的担心没有任何根据。然而,在做一些性能测试或分析之前,我想问你们一些关于这方面的问题
懒惰是健康的一半
提前感谢:有两种不同的方法(您使用的是第一种):
- 将要保留的信息存储在属性中,并让出站交互使用其响应替换有效负载,然后从属性中检索保存的信息。如果不需要在流之间共享存储的信息,则使用流变量而不是会话属性更为可取
- 将原始有效负载转换为预期响应,传播此“echo”值,并使用消息充实器与出站服务交互。如果出站交互真的是为了丰富响应,那么这在语义上就更清楚了
?不,例如:。。。然后响应将包含相同的部分。现在更容易理解了吗?对不起,如果我第一次没说清楚的话。