我有一个基于以下详细信息返回响应 json 的 url:
https://testapi/dev?user=reportuser
Call type: POST
Body: {
"name": "Employee Data",
"pageSize": "10000",
"nextTableName": "EMPLOYEE",
"nextKey": "1",
"tables": [
{
"tableName": "EMPLOYEE",
"columns": [
"FIRST_NAME",
"LAST_NAME",
"ADDRESS",
]
}
]
}
Response JSON:
{
"data": {
"EMPLOYEE": [
{
"FIRST_NAME":"Rahul",
"LAST_NAME":"Sharma",
"ADDRESS":"UK"
},
{
"FIRST_NAME":"Albert",
"LAST_NAME":"Wintermeyer",
"ADDRESS":"Australia"
},
...
...
],
"pagination": [
{
"nextTableName": "EMPLOYEE",
"nextKey": "10001"
}
]
}
}
为了解释该 url 的工作原理,它返回从第 1 个 time 开始的前 10000 条记录(因为 nextKey:1)。
如果我想查询接下来的10000条记录,我将body中的nextKey替换为10001,它将返回从10001到20001的所有记录。
不断调用这些直到响应中的 nextKey 返回 0。
我想将此数据移动到 Azure SQL 数据库,为此我使用 Azure 数据工厂。我尝试使用 Web 活动,但负载限制为 4MB。因为需要无数次调用才能到达终点。
我读过的所有文章都建议使用分页规则的直接方法,即在响应 json 中,我将获得指向下一组数据(称为 nextLink)的链接。就我而言,我只得到一个数字(nextKey)。
如何使用复制数据活动的分页规则,以便我可以再次使用新的 nextKey 值和 url 发送整个正文。
注意:它是 POST 调用,因此每次都必须发送正文(使用新的 nextkey 值)。
我使用复制数据活动的分页规则,这样我可以再次使用新的 nextKey 值和 url 发送整个正文。
据我所知,您无法直接获取 API 主体的 API 响应。你也检查这个类似的问题。
您可以按照以下方法来实现您的场景:
nextkey
等于 0 则停止迭代。
{
"name": "Employee Data",
"pageSize": "10000",
"nextTableName": "EMPLOYEE",
"nextKey": "@{variables('nextkey')}",
"tables": [
{
"tableName": "EMPLOYEE",
"columns": [
"FIRST_NAME",
"LAST_NAME",
"ADDRESS"
]
}
]
}
因此它将从设置变量中获取下一个键的值,然后调用响应并将其复制到sql表中。
nextkey
值。
nextkey
值 nextkey
。
nextkey
值并在until循环中再次基于该值进行迭代,直到与条件匹配。