You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Automate/Logic Apps中如何实现基于页码的REST API分页遍历

页码式REST API全量数据拉取实现方案(适配Power Automate / Logic Apps)

Logic Apps和Power Automate的内置分页开关仅支持基于续接令牌(continuation token)的分页逻辑,页码传参类分页直接用「变量+Do until循环」实现即可,具体操作步骤如下:

  • 初始化流程变量
    流程触发后、调用接口前,先创建3个变量:
    • currentPage:整数类型,初始值设为1,用于记录当前请求的页码
    • totalPages:整数类型,初始值设为1,用于存储接口返回的总页数,第一次请求后会被真实值覆盖
    • allResults:数组类型,初始值设为空数组[],用于存储所有分页拉取到的业务数据
  • 配置Do until循环
    把循环的终止条件设置为 currentPage 大于 totalPages,同时在循环设置里把并发控制值改为1,关闭并行执行,避免页码错乱、数据重复。如果数据量较大,顺便把循环超时时间从默认的1小时调整为更长的时间(比如PT24H,即24小时),防止流程中途超时中断。
  • 配置循环内的执行逻辑
    按顺序在循环内部添加以下操作:
    1. 调用目标REST API,请求参数中pageNumber字段绑定currentPage变量,pageSize按接口要求传固定值(比如示例里的100)
    2. 解析接口返回的JSON结构,接口返回结构参考如下:
      {
        "_results": [
          { ... },
          { ... }
        ],
        "pageNumber": 1,
        "totalPageCount": 5,
        "pageSize": 100,
        "pageCount": 100,
        "totalCount": 445
      }
      
      提取返回体中的totalPageCount和_results字段
    3. 给totalPages变量重新赋值,值为接口返回的totalPageCount
    4. 把当前页返回的_results数组合并到allResults变量中,直接用表达式批量合并即可,不需要逐条追加,效率更高,参考表达式:
      union(variables('allResults'), body('解析JSON操作')?['_results'])
      
    5. 给currentPage变量自增1,参考表达式:
      add(variables('currentPage'), 1)
      

额外注意:如果目标接口有请求频率限制,在循环末尾加一个固定延迟操作(比如每次请求后等待1-2秒),避免触发429限流报错。

按照上述逻辑,第一次请求会拉取第1页数据,拿到真实总页数后逐页递增请求,直到当前页码超过总页数时自动终止循环,最终allResults变量里存储的就是全量业务数据。

内容的提问来源于stack exchange,提问作者Gangrel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.07 16:15:42