【问题标题】:WSO2 EI/ESB: For loop implementationWSO2 EI/ESB:For循环实现
【发布时间】:2020-05-14 08:51:12
【问题描述】:

我想在 WSO2 Integration Studio 中实现一个简单的“for 循环”。

例如:

我正在实现一个总线路由 API。每辆公共汽车有 10 个不同的站点。我想从后端服务中获取 10 个站点。一个正常的for循环是:

for(i=0;i<10;i++)
{
    //back-end call
    <call>
       <endpoint>
          <http method="get" uri-template="https://backend.com/city+i"/>
       </endpoint>
    </call>
}

注意:在上面的for循环中,后端调用的路径参数如city,应该迭代为city1、city2、city3、.....city9。

如何在 WSO2 EI/ESB Integration Studio 中实现这一点?

【问题讨论】:

  • 您如何存储后端调用的 URL?在此基础上,我们可以尝试提出一个想法。
  • 我已经编辑了问题中的 for 循环,并在底部添加了一个注释,请检查。我不会在任何地方存储后端调用的 URL。对于后端调用,我在 http 端点内使用 Call Mediator。这能回答你的疑问吗?

标签: wso2 wso2esb esb wso2ei ei


【解决方案1】:

一种简单的方法是使用数组中的数字定义示例有效负载并遍历它。 (如果迭代次数是预定义的,这将起作用)例如:[{"value" : 1},{"value" :2},{"value" : 3}, ... ]

否则您可以编写自定义类中介并实现您的逻辑。

还有一种有趣的方法可以在数据库的帮助下实现 while 循环。 http://bsenduran.blogspot.com/2017/08/while-loop-in-wso2-esb.html?m=1

【讨论】:

  • 如果我想像您建议的那样手动定义示例有效负载,哪个中介可以做到这一点?你能给我一个示例吗?
  • 使用 PayloadFactoryMediator。 [{"value" : 1},{"value" : 2},{"value" : 3}]
  • 我可以在 Iterate mediator 中使用 Iterate mediator 吗?
  • 如果你想遍历我提供的数组,那么试试json-eval($)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多