Azure 数据工厂中 Rest API 的自定义分页
Custom Pagination of Rest API in Azure Data Factory
我想从 Rest 检索所有结果 API endpoint.The 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 且“数据”为空)?
还有我们如何增量请求 API 数据,所以管道不需要 运行 从头开始(第 1 页)的所有结果,而是从最后更新的页面
@christi08
因为输出中没有返回下一页信息。很遗憾,您将无法利用 inbuilt pagination feature.
As alternative/workaround - 您可以使用以下方法。
您可以使用迭代方法来实现您的最终目标。
第 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 与其他参数和路径一起添加。
在您的情况下,基数 url 会有所不同。
第 4 步:
没有在复制activity,源设置下。
您将传递带有管道变量值的参数。
此管道变量将递增。
因此对于每次迭代 - pageno 都会递增,因此相对 url 也是动态的。
您需要 SET VARIABLE activity 来增加 pageno 管道变量。
要循环,您可以使用 Until Activity
结束条件
要结束 activity,您必须提供一个表达式。
- 您可以使用动态相关 url.
添加另一个网络活动/查找 activity
您可以访问网络的输出activity / lookup activity 并访问 isLastPage 节点 - 直到这是真的。
- 您可以访问 copyactivity 输出并查看写入的行数是否为 0。并结束直到 activity。
我想从 Rest 检索所有结果 API endpoint.The 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 且“数据”为空)?
还有我们如何增量请求 API 数据,所以管道不需要 运行 从头开始(第 1 页)的所有结果,而是从最后更新的页面
@christi08
因为输出中没有返回下一页信息。很遗憾,您将无法利用 inbuilt pagination feature.
As alternative/workaround - 您可以使用以下方法。
您可以使用迭代方法来实现您的最终目标。
第 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 与其他参数和路径一起添加。
在您的情况下,基数 url 会有所不同。
第 4 步:
没有在复制activity,源设置下。
您将传递带有管道变量值的参数。
此管道变量将递增。
因此对于每次迭代 - pageno 都会递增,因此相对 url 也是动态的。
您需要 SET VARIABLE activity 来增加 pageno 管道变量。
要循环,您可以使用 Until Activity
结束条件
要结束 activity,您必须提供一个表达式。
- 您可以使用动态相关 url. 添加另一个网络活动/查找 activity
您可以访问网络的输出activity / lookup activity 并访问 isLastPage 节点 - 直到这是真的。
- 您可以访问 copyactivity 输出并查看写入的行数是否为 0。并结束直到 activity。