WSO2 EI / ESB: добавить полезную нагрузку из фабрики полезной нагрузки в параметр пути в бэкэнд-вызове

У меня есть фабрика полезной нагрузки, как показано ниже:

<payloadFactory media-type="json">
    <format>[{"value" : 1},{"value" : 2},{"value" : 3}]</format>
    <args/>
</payloadFactory>

<iterate expression="json-eval($)" id="iterate-over-nameAddress">
    <call>
        <endpoint>
            <http method="get" uri-template="https://backend.com/names/value+{uri.var.value}/address"/>
        </endpoint>
    </call>
</iterate>

В приведенном выше коде при вызове серверной части я хочу, чтобы параметр пути "value + {uri.var.value}" изменялся динамически в соответствии с выражением итерации. Параметр пути должен изменяться на значение1, значение2, значение3 ... для каждой итерации.

Как мне это реализовать?


person cracknut    schedule 18.05.2020    source источник


Ответы (1)


Поскольку вы выполняете итерацию с фиктивной полезной нагрузкой, вы можете попробовать следующее. Вместо того, чтобы иметь значения как 1, 2, 3, они имеют все значение в самой фиктивной полезной нагрузке.

<payloadFactory media-type="json">
        <format>[{"value" : "value1"},{"value" : "value2"},{"value" : "value3"}]</format>
        <args/>
     </payloadFactory>
     <iterate expression="json-eval($)">
        <target>
           <sequence>
              <property name="uri.var.value" expression="json-eval($.value)"/>
              <call>
                 <endpoint>
                     <http method="get" uri-template="http://www.mocky.io/v2/5185415ba171ea3a00704eed/{uri.var.value}/address"/>
                 </endpoint>
             </call>
           </sequence>
        </target>
     </iterate>
person Arunan Sugunakumar    schedule 19.05.2020
comment
Поскольку я выполняю итерацию внутри итерации, сталкиваюсь с проблемой в целом. stackoverflow.com/q/61889990/13424730 - person cracknut; 19.05.2020
comment
Каким должно быть агрегатное выражение для итерации внутри итерации? - person cracknut; 21.05.2020