【问题标题】:WSO2 EI/ESB: Append payload from Payload Factory to Path Parameter in backend callWSO2 EI/ESB:将负载工厂中的负载附加到后端调用中的路径参数
【发布时间】:2020-09-03 23:52:48
【问题描述】:

我有一个像下面这样的有效载荷工厂:

<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}”根据迭代表达式动态变化。每次迭代的路径参数都应该像 value1, value2, value3... 一样改变。

我该如何实现?

【问题讨论】:

    标签: wso2 wso2esb esb wso2ei ei


    【解决方案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>
    

    【讨论】:

    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    相关资源
    最近更新 更多