1. 概述
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 4.1.3 | - |
1.2 应用场景
需要使用 FineDataLink 取出 API 数据时,由于数据量限制或者接口响应时间,有时需要分页取数。
1.3 功能简介
| 位置 | 功能说明 |
|---|---|
| 参数赋值节点、数据同步节点取出 API 数据时 | 「高级配置」设置项中,可开启「分页取数」按钮,对源端 API 数据进行分页取数,分页方式支持:页码、偏移量、游标
|
| API 输入算子中 |
1.4 使用限制
当前只支持返回值为 json 的 API。
3. 分页方式说明
3.1 分页方式为页码
3.1.1 取数逻辑
FineDataLink 提供 pageNum 这个参数进行分页取数,代表页数,可自定义该参数的初始值,增长间隔为1(不可自定义)。
比如取数时,设置从第一页开始取数,下次从第二页开始取数,以此类推,分页取数的次数限制为 10000 次。
用户还需根据实际情况设置循环结束条件。
示例说明(帮助理解功能):
比如有个 API 接口,存在大量数据,需要进行分页取数:

| 要素 | 说明 | ||
|---|---|---|---|
| 接口基本情况 | 1)取数时需要填入 pageNum(页数)和pageSize(单页大小)这两个参数 2)接口调用成功后,会返回 totalNum(总数据条数) | ||
| 分页方式 | 因为有 pageNum(页数)和pageSize(单页大小)这两个参数,我们可考虑根据页码进行分页 | ||
| 结束条件 | 由于有 totalNum ,可通过 totalNum/pageSize 计算总页数,当取数次数>=总页数时,终止循环
|
提示:具体示例可参考:分页取数-按页数取数
3.1.2 功能说明

| 设置项 | 说明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 取数限制 | 限制分页取数的次数。
| ||||||||||
| 参数 | pageNum,代表页数
| ||||||||||
| 更新策略 |
用户配置起始值和增长间隔后,每次循环后执行自增动作,自增逻辑为:pageNum=pageNum+增长间隔 | ||||||||||
| 分页结束条件 | 根据接口实际情况设置结束条件:
注:值可以引用参数。 |
3.2 分页方式为偏移量
3.2.1 取数逻辑
在API 分页取数时,偏移量(offset) 是指从结果集的开头开始跳过的记录数量,它决定了当前请求从哪一条数据开始返回。
简单来说,偏移量就是“跳过前面多少条数据,从第几条开始拿”。
核心概念:偏移量(offset):指定查询结果的起始位置,即跳过多少条记录后开始返回数据。索引从 0 开始,所以 offset=0 表示从第 1 条数据开始,offset=10 表示跳过前 10 条,从第 11 条开始取数。
限制条数(limit):指定每次请求最多返回多少条数据。
示例:
比如有个 API 接口,存在大量数据,需要进行分页取数:

| 要素 | 说明 | ||
|---|---|---|---|
| 接口基本情况 | 调用接口时,需要需要填写偏移量和限制条数参数 | ||
| 分页方式 | 可考虑用偏移量的分页方式 | ||
| 结束条件 | 比如一共有 10 条数据,从第一条数据开始取数(startrow),每次最多取 3 条,那么需要取 4 次,最后一次的数据条数为 2 条,那么循环结束条件就是:最后一次的数据条数<limit参数的值 如果每次取两条,那么取 5 次取完,那么循环结束条件可设置为最后一次取数条数>0 可以用其他标准设置结束条件,根据实际情况设置
|
提示:3.2.2 功能说明

| 设置项 | 说明 |
|---|---|
| 取数限制 | 限制分页取数的次数。
|
| 参数 | offset参数,代表偏移量
|
| 更新策略 |
用户配置起始值和增长间隔后,每次循环后执行自增动作,自增逻辑为:offset=offset+增长间隔 |
| 分页结束条件 | http status、JSONPath、requestTimes说明请参见本文 3.1.2 节内容
|
3.3 分页方式为游标
3.3.1 取数逻辑
游标分页逻辑:类似于书签,记录当前位置(游标),从这个位置开始取下一次的数据。
示例:
比如有个 API 接口:

| 要素 | 说明 |
|---|---|
| 接口基本情况 | 1)取数时需要传入 cursor 参数,代表从哪个位置开始取数 最开始传0,后续传返回参数中的next_cursor值 2)调用接口后,返回参数:
|
| 游标取数逻辑 | 根据接口基本情况,可看出: 1)分页结束条件:has_more 为 false,代表数据已经取完,应该结束分页
2)取数时具体设置:
|
提示:3.3.2 功能说明

| 设置项 | 说明 |
|---|---|
| 取数限制 | 限制分页取数的次数。
|
| 参数 | cursor 参数
|
| 更新策略 | 1)默认值:默认为空,用户可输入、允许为空、支持参数引用, 2)游标参数更新:
注:先判断分页结束条件,再执行游标参数更新。 |
| 分页结束条件 |
http status、JSONPath、requestTimes说明请参见本文 3.1.2 节内容
|
4. 通用说明
勾选了分页取数后, API 数据源其他功能说明:
| 功能 | 说明 |
|---|---|
| 重试 | 若 API 输入分页取数单次执行调用API失败,没有重试逻辑,按整个数据转换节点重试 |
| 调用频率控制 | 在一个任务实例中,分页取数多次调用API受「调用频率控制」控制 |
|
因为每次分页取数时获得 json 可能不一样,如果找不到相应json路径,则为空
因为每次分页取数时获得 json 可能不一样,每次将json展开二维表时,如果遇到新的属性,则新增列 没有相关属性的分页取数,相关列为空 |
| 返回值格式 | 当响应体格式为 xml 时,不支持分页取数 |
信息类型(参数赋值)
| 如果参数赋值同时解析响应体、响应头、状态码,将每次取数获得响应拼成一个N列N行的二维表 |
