在Mulesoft 4中使用HTTP服务增强数据



我有一个用例,我想从队列中读取JMS消息,获取消息内容,这是一个JSON文档,并使用从HTTP请求返回的值增加2个字段,然后将原始消息与增加的值传递到下一个形状。

例如:

  • from JMS consumer:
{
"f1": "val1",
"f2": "val2",
"f3": null,
"f4": null
}

我有一个HTTP服务,将返回:

{
"foo": "fooval",
"bar": "barval"
}

我希望稍后在流程中对形状可用的是:

{
"f1": "val1",
"f2": "val2",
"f3": "fooval",
"f4": "barval"
}

我写这篇文章的流程是这样的:

JMS消费者->HTTP请求->记录器

我不确定如何获得与这些HTTP请求值增强的消息并将其传递给日志记录器。HTTP请求将有效负载设置为:

{
"foo": "fooval",
"bar": "barval"
}

如何保留来自JMS消费者的有效负载,并用HTTP请求值简单地增加有效负载?

我觉得我的方法不对;)

您可以将任何操作的输出设置为一个变量,而不是有效负载。例如,HTTP Request输出可以设置为目标变量foobar。然后,您可以使用Transform组件来创建输入payloadvars.foobar所需的base输出。Transform基本上让你写一个DataWeave脚本来做转换。您需要学习一点DataWeave来编写正确的脚本。

话虽如此,得到输出的逻辑是什么还不清楚。只是更新负载的值。F3与vars.foobar.foo的值和类似的payload.f4?这应该很容易,但不清楚这是不是你想要的。

的例子:

<http:request ... target="foobar" targetValue="#[message]">

Transform中的DataWeave脚本可以是这样的:

%dw 2.0
output application/json
---
{
f1 : payload.f1,
f2 : payload.f2,
f3 : vars.foobar.foo,
f4 : vars.foobar.bar
}

相关内容

  • 没有找到相关文章

最新更新