Цепочка сервисов — важная функция любой доступной ESB.
Вы можете использовать Call Mediator, который сохраняет управление в последовательности (скажем, в вашей последовательности)
Вы можете использовать вызов для первой конечной точки, для второй конечной точки я предполагаю, что идентификатор доступен в теле ответа, вы можете использовать json-eval или xpath, чтобы получить это значение, в зависимости от типа данных, которые использует вторая служба, вы можете использовать PayloadFactoryMediator и установите идентификатор в нужной части тела
А в следующей строке вы можете снова позвонить с помощью Call Mediator или Send
Грубый код будет похож.
<payloadFactory media-type="json">
<format>
{ "A": "6", "tests": [{ "id": "xyz", "status": "new", "emp": [{ "Id": "12345" }] }], "student": [{ "Id": "65", "Name": "Ram" }] }
</format>
</payloadFactory>
<call>
<endpoint>
<http method="get" uri-template="http://192.168.1.10:8088/mockaxis2service"/>
</endpoint>
</call>
<!-- suppose id field comes as response in field name id2 -->
<payloadFactory media-type="json">
<format>
{
"inp2second":"$1"
}
</format>
<args>
<arg expression="$.emp.id2"/>
</args>
</payloadFactory>
<call> or <send>
Теперь вы можете использовать либо вызов, либо отправку посредника, отправку посредника, чтобы переместить управление в аутпоследовательность.
для выражения json, используемого выше как $.emp.id2
, пожалуйста, обратитесь к странице поддержки json, например Пример цепочка сервисов также доступна здесь
person
Rahul
schedule
04.01.2016