在 Mulesoft 4 中使用 HTTP 服务扩充数据
augmenting data with HTTP service in Mulesoft 4
我有一个用例,我想从队列中读取 JMS 消息,获取消息内容,这是一个 JSON 文档,并使用 returned 的值扩充 2 个字段一个 HTTP 请求,然后将带有增强值的原始消息传递到下一个形状。
例如:
- 来自 JMS 消费者:
{
"f1": "val1",
"f2": "val2",
"f3": null,
"f4": null
}
我有一个 HTTP 服务 return:
{
"foo": "fooval",
"bar": "barval"
}
我希望在流程的后面对形状可用的是:
{
"f1": "val1",
"f2": "val2",
"f3": "fooval",
"f4": "barval"
}
我写这篇文章的流程是这样的:
JMS 消费者 -> HTTP 请求 -> 记录器
我不确定如何使用这些 HTTP 请求值增强消息并将其传递给记录器。 HTTP 请求会将负载设置为:
{
"foo": "fooval",
"bar": "barval"
}
我如何保留来自 JMS 消费者的有效负载并简单地使用 HTTP 请求值增加有效负载?
我觉得我的做法不对;)
您可以设置任何操作的输出to a variable instead of the payload. For example the HTTP Request output can be set to the target variable foobar
. Then you can use a Transform component to create the output desired in base to the input payload
and vars.foobar
. Transform basically let's you write a DataWeave script that does the transformation. You'll need to learn a bit of DataWeave以编写正确的脚本。
话虽如此,但不清楚获取输出的逻辑是什么。只是用 vars.foobar.foo 的值更新 payload.f3 的值,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
}
我有一个用例,我想从队列中读取 JMS 消息,获取消息内容,这是一个 JSON 文档,并使用 returned 的值扩充 2 个字段一个 HTTP 请求,然后将带有增强值的原始消息传递到下一个形状。
例如:
- 来自 JMS 消费者:
{
"f1": "val1",
"f2": "val2",
"f3": null,
"f4": null
}
我有一个 HTTP 服务 return:
{
"foo": "fooval",
"bar": "barval"
}
我希望在流程的后面对形状可用的是:
{
"f1": "val1",
"f2": "val2",
"f3": "fooval",
"f4": "barval"
}
我写这篇文章的流程是这样的:
JMS 消费者 -> HTTP 请求 -> 记录器
我不确定如何使用这些 HTTP 请求值增强消息并将其传递给记录器。 HTTP 请求会将负载设置为:
{
"foo": "fooval",
"bar": "barval"
}
我如何保留来自 JMS 消费者的有效负载并简单地使用 HTTP 请求值增加有效负载?
我觉得我的做法不对;)
您可以设置任何操作的输出to a variable instead of the payload. For example the HTTP Request output can be set to the target variable foobar
. Then you can use a Transform component to create the output desired in base to the input payload
and vars.foobar
. Transform basically let's you write a DataWeave script that does the transformation. You'll need to learn a bit of DataWeave以编写正确的脚本。
话虽如此,但不清楚获取输出的逻辑是什么。只是用 vars.foobar.foo 的值更新 payload.f3 的值,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
}