【问题标题】:Custom Pagination of Rest API in Azure Data FactoryAzure 数据工厂中 Rest API 的自定义分页
【发布时间】:2022-01-26 13:46:34
【问题描述】:

我想从 Rest API 端点检索所有结果。URL 具有以下形式 https://myapi.com/relativeapi?project=&repo=&prId=&page=&pageSize=&startTime=&endTime

默认情况下,请求数据时只返回第一页。示例输出如下

    "pageSize":50,
    "num":50,
    "isLastPage":false,
    "data":
        {"ABC":{"mock1":[{"Id":18,"Date":"202104T02:04:53.000Z","attr1":0,"attr2":0,"attr3":0,"historyData":[{"Date":"2021-11-03T00:08:13.000Z","attr1":0,"attr2":0,"attr3":0,"attr4":{}} 

我们如何在 Azure 数据工厂中实现这一点并从所有页面检索所有结果(最后一页直到 "IsLastPage=TRUE 并且 "data" 为空)?

还有我们如何增量请求 API 数据,所以管道不需要从头(第 1 页)运行所有结果,而是从最后更新的页面获取结果

【问题讨论】:

    标签: pagination azure-data-factory incremental-load


    【解决方案1】:

    @christi08

    因为在输出中没有返回下一页信息。不幸的是,您将无法使用inbuilt pagination feature.

    作为替代/解决方法 - 您可以使用以下方法。

    您可以使用迭代方法来实现您的最终目标。

    第 1 步:

    您的请求将采用以下格式

     https://myapi.com/relativeapi?page=1.......
     https://myapi.com/relativeapi?page=2.......
     https://myapi.com/relativeapi?page=3.......
     https://myapi.com/relativeapi?page=n.......
    

    第 2 步:

    在管道级别创建一个名为 pageno 的变量。

    第 3 步:

    在 Rest 连接器中创建一个参数 页面

    此页面参数将作为相对 url 与其他参数和路径一起添加。

    在您的情况下,基本网址会有所不同。

    第 4 步:

    在源设置下的复制活动中没有。

    您将使用管道变量的值传递参数。

    此管道变量将递增。

    因此对于每次迭代 - pageno 将递增,因此相对 url 也是动态的。

    您需要 SET VARIABLE 活动来增加 pageno 管道变量。

    要循环,您可以使用 Until Activity

    结束条件

    要让 until 活动结束,您必须提供一个表达式。

    1. 您可以使用动态相对 url 添加另一个网络活动/查找活动。

    您可以访问网络活动/查找活动的输出并访问 isLastPage 节点 - 直到这是真的。

    1. 您可以访问 copyactivity 输出并查看写入的行数是否为 0。然后结束 until 活动。

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 2022-01-02
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      相关资源
      最近更新 更多