0

上下文: 我有一个基于 XML 的 API。我使用此 API 收到请求。然后我有将这些请求转换为第三方特定 API 的转换器。然后我使用转换后的对象进行 Web 服务调用,返回一些我转换回 API 对象的响应。

在一行中,它就像:

MY_API_REQ -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES

死的简单。

问题: 现在,我想在回复中回显我的请求的某些部分。

所以假设我的请求 API 有一个 Echo 组件,它也必须出现在响应中。在我看来,最简单的解决方案是在将我的请求转换为第 3 方的 API 之前将此 Echo 组件存储在某个地方(例如:在会话范围的标头属性中)。然后在响应分支上,我检索这个 Echo 组件并将其设置在我的响应对象上。

在一行中,它就像:

MY_API_REQ -> Store parts -> 3RD_PARTY_API_REQ -> WS-CAL -> 3RD_PARTY_API_RES -> MY_API_RES -> Retrieve and set stored parts

关注:这个解决方案并没有让我觉得我正在使用最好的解决方案。部分原因是我担心在执行流程期间存在我不知道的复制机制,这让我担心性能......

我正在同步完成所有这些工作,所以我应该一直在同一个线程上,所以也许我的担忧没有任何基础。然而,在进行一些性能测试或分析之前,我想问你们这...

懒惰是一半的健康。;) 提前致谢:T

4

1 回答 1

1

有两种不同的方法(您使用的是第一种):

  • 将您要保留的信息存储在属性中,并让出站交互用其响应替换有效负载,随后从属性中检索保存的信息。如果您不需要跨流共享此存储信息,则建议使用流变量而不是会话属性。
  • 将原始有效负载转换为预期的响应,传播此“回声”值并使用消息丰富器与出站服务交互。如果出站交互真的是为了丰富响应,这在语义上会更清晰。
于 2012-07-18T16:56:13.613 回答