Я хочу скопировать запрос и вызвать 3 бэкэнда параллельно, а затем объединить ответы в один ответ и сохранить его для дальнейшего посредничества. Я понятия не имею, как это сделать, и если это вообще возможно
IЯ попробовал медиатор клонирования и установил continueParent
в значение true, но он не ожидает обработки сообщений в клонах и просто пропускает его.
Для этого случая я использовал только пользовательские свойства
<?xml version="1.0" encoding="UTF-8"?>
<api context="/test" name="test" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST">
<inSequence>
<payloadFactory description="test payload" media-type="json">
<format>{ 
"test" : "test"
}</format>
<args/>
</payloadFactory>
<clone continueParent="true" id="TEST_ID">
<target>
<sequence>
<log>
<property name="property_name" value="CLONE1"/>
</log>
<property name="PROP_1" scope="default"
type="STRING" value="1"/>
</sequence>
</target>
<target>
<sequence>
<log>
<property name="property_name" value="CLONE2"/>
</log>
<property name="PROP_2" scope="default" type="STRING" value="2"/>
</sequence>
</target>
<target>
<sequence>
<log>
<property name="property_name" value="CLONE3"/>
</log>
<property name="PROP_3" scope="default" type="STRING" value="3"/>
</sequence>
</target>
</clone>
<payloadFactory media-type="json">
<format>{
"PROP_1" : "$1",
"PROP_2" : "$2",
"PROP_3" : "$3
}</format>
<args>
<arg evaluator="xml" expression="$ctx:PROP_1"/>
<arg evaluator="xml" expression="$ctx:PROP_1"/>
<arg evaluator="xml" expression="$ctx:PROP_1"/>
</args>
</payloadFactory>
<log level="full"/>
<respond/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
Ожидаемый результат:
{
"PROP_1" : "1",
"PROP_2 : "2",
"PROP_3" : "3"
}