目前,我正在开发一个集成场景,我必须使用3个服务来返回我需要关联的相同数量的单个响应,然后从这个关联中生成一个新的json。
第一个服务返回一个json,如下所示:
Attendants:
[
{
"id": 10,
"section": "A"
},
{
"id": 11,
"section": "B"
}
]
第二个回应是:
Seats:
[
{
"id": 10,
"seat": 122,
"type": "VIP"
},
{
"id": 10,
"seat": 123,
"type": "VIP"
},
{
"id": 10,
"seat": 124,
"type": "VIP"
},
{
"id": 11,
"seat": 200,
"type": "Standard"
}
]
最后,这是第三个回复:
Games:
[
{
"id": 10,
"game": 1,
"type": "Regular"
},
{
"id": 10,
"game": 2,
"type": "Regular"
},
{
"id": 11,
"game": 1,
"type": "Playoff"
},
{
"id": 11,
"game": 2,
"type": "Playoff"
}
]
我期望的结果是:
[
{
"id": 10,
"section": "A",
"seats": [
{
"seat": 122,
"type": "VIP"
},
{
"seat": 123,
"type": "VIP"
},
{
"seat": 124,
"type": "VIP"
}
],
"games": [
{
"game": 1,
"type": "Regular"
},
{
"game": 2,
"type": "Regular"
}
]
},
{
"id": 11,
"section": "B",
"seats": [
{
"seat": 200,
"type": "Standard"
}
],
"games": [
{
"game": 1,
"type": "Playoff"
},
{
"game": 2,
"type": "Playoff"
}
]
}
]
到目前为止,我有3条单独的路线来使用这些服务而且我已经获得了没有问题的回复,问题是:
1)一旦我分裂了第一个响应,这是从其他两个响应中丰富每个元素的最佳方法吗?我理解如果将一个unmarshal()添加到POJO列表中,我可以遍历列表并以编程方式关联元素,但是,使用Camel的EIP实现有更好的方法吗?
我一直在阅读关于骆驼的分裂,丰富和聚合的内容,但我不清楚如何结合这些EIP来实现我的json目标。
非常感谢!