遍历在 ADF 中有限制的 API

Iterate through an API that has limits in ADF

我有一个 ADF 管道,其中有一个 API 调用,其中 returns 数据块(最多 100 个)。如果您只需要 100 个用户,则此管道有效。我一直在想办法再次调用 API(并将计数增加 100)直到响应为空。

例如,这是 API (#3) 的 URL:https://externalAPI.api?$top=100&$skip=@pipeline().parameters.skipCount(从 0 开始)

在forEach activity之后,我想检查response是否为空,如果不是,返回调用API activity,然后重复直到response为空。问题是如果响应不为空,则无法添加返回到 API activity 的 if 条件 activity。

我尝试的一个解决方案是将前三个步骤作为它们自己的管道,然后在第二个管道中调用执行管道 activity。我运行分为两期:

  1. 我不确定如何将网络响应activity传递到下一个管道
  2. 在 if 条件 activity 中也不允许使用 ForEach activity

我认为 If 条件 activity 将允许您调用前一个 activity,但情况似乎并非如此。如有任何建议,我们将不胜感激。

您可以使用 Until activity 循环调用 API。

  1. 在管道级别创建一个变量(例如:repeat)并传递一个默认值(例如:false)。

  2. 在until循环中,加入判断变量值是否为真的表达式

  3. 在 until 循环内,调用 API 并更新 URL 并在每次迭代中增加值。当没有返回响应时,Web activity 停止 运行 然后将 repeat 变量的值更改为 true 以停止迭代 until 循环。