API輸入-分頁取數

  • 文档创建者:Roxy
  • 历史版本:9
  • 最近更新:Nikozhan 于 2025-04-15
  • 1. 概述

    1.1 版本

    FineDataLink 版本
    功能變動
    4.1.3-

    1.2 應用場景

    需要使用 FineDataLink 取出 API 資料時,由於資料量限制或者API回應時間,有時需要分頁取數。

    1.2 功能說明

    FineDataLink 提供了 API 分頁功能。

    在「參數指派」「資料同步」「API輸入」功能中,若選擇資料來源為 API ,則可以在資料來源下的「進階配置」中勾選「分頁取數」,根據API設定的分頁方式進行取數,如下圖所示:

    2. 使用限制

    當前只支援回傳值為 json 的 API。

    3. 功能說明

    所有分頁方式的分頁取數中,分頁結束條件邏輯:先執行迴路本體,再判斷是否終止循環。範例:假設頁數 pageNum>=totalpages 時,停止執行,當 totalpages 為 8,pageNum 也為 8 時,會先執行 pageNum 為 8 的循環,再終止執行。

    維度
    說明
    取數限制

    限制分頁取數的次數。

    • 預設為128

    • 不能為空,限制最大值為 10000

    • 當達到循環上限時,還未滿足分頁結束條件,也結束分頁取數,並報錯

    分頁方式-頁碼

    參數

    • 只能在這個「API輸入算子」內使用、為算子級參數、且同名優先最高;

    • 在單次調取API結束後,再自增;

    • 使用者可在 Query 參數和Body內的各種格式下使用,與標準的參數用法無差異;

    更新策略

    • 初始值:使用者可配置初始值,預設為1,不能為空

    • 增長間隔:使用者不能修改增長間隔,預設為1,不能為空

    使用者配置起始值和增長間隔後,每次循環後執行自增動作,自增邏輯為:pageNum=pageNum+增長間隔

    分頁結束條件

    • http status:本次循環的API傳回 http status

    • JSONPath:本次循環的API傳回body作為基礎,在這個基礎上透過寫JSONPath獲取資訊(僅支援傳回單個值,如果傳回是陣列或者JSON物件,也格式化為字串);當回應體的jsonPath沒有時,則取空

    • requestTimes:分頁取數的循環次數,如果在循環容器中的API輸入算子,該取數次數循環容器每次循環分開計數

    • pageNum:頁碼參數$pageNum

    注:值可以引用參數。

    分頁方式-偏移

    參數:

    • 只能在這個API輸入算子內使用、為算子級參數、且同名優先最高;

    • 在單次調取API結束後,再自增;

    • 使用者可在Query參數和Body內的各種格式下使用,與標準的參數用法無差異;

    更新策略

    • 初始值:使用者可配置初始值,預設為1,不能為空

    • 增長間隔:使用者用可配置增長間隔,預設為20,不能為空

    使用者配置起始值和增長間隔後,每次循環後執行自增動作,自增邏輯為:offset=offset+增長間隔

    分頁結束條件

    • http status:本次循環的API傳回 http status

    • JSONPath:本次循環的API傳回body作為基礎,在這個基礎上透過寫JSONPath獲取資訊(僅支援傳回單個值,如果傳回是陣列或者JSON物件,也格式化為字串);當回應體的jsonPath沒有時,則取空

    • requestTimes:分頁取數的循環次數,如果在循環容器中的API輸入算子,該取數次數循環容器每次循環分開計數

    • offset:偏移參數$offset

    注:值可以引用參數

    分頁方式-游標游標:
    • 只能在這個API輸入算子內使用、為算子級參數、且同名優先最高;

    • 用於鏈式循環場景,每次循環後執行繼承更新動作;

    • 使用者可在Query參數和Body內的各種格式下使用,與標準的參數用法無差異;

    更新策略

    • 預設值:預設為空,使用者可輸入、允許為空、支援參數引用,

    • 游標參數更新:

      • 當回應體的jsonPath沒有時,則取空

      • 使用者可以使用本次循環的API傳回的body作為基礎,在這個基礎上透過寫JSONPath作為更新後的值(僅支援傳回單個值,如果傳回是陣列或者JSON物件,也格式化為字串)

      • 注:先判斷分頁結束條件,再執行游標參數更新。

    分頁結束條件

    • http status:本次循環的API傳回 http status

    • JSONPath:本次循環的API傳回body作為基礎,在這個基礎上透過寫JSONPath獲取資訊(僅支援傳回單個值,如果傳回是陣列或者JSON物件,也格式化為字串);當回應體的jsonPath沒有時,則取空

    • requestTimes:分頁取數的循環次數,如果在循環容器中的API輸入算子,該取數次數循環容器每次循環分開計數

    • cursor:游標參數$cursor

    注:值可以引用參數

    勾選了分頁取數後, API 資料源其他功能說明:

    功能說明
    重試若 API 輸入分頁取數單次執行呼叫API失敗,沒有重試邏輯,按整個資料轉換節點重試
    呼叫頻率控制在一個任務實體中,分頁取數多次呼叫API受「呼叫頻率控制」控制
    • json路徑

    • 將解析後的json資料展開為二維表

    • 如果API節點只配置了分頁取數,將每次取數獲得的json拼成一個一欄N行的二維表(該二維表只有一欄 responseBody

    • 如果API節點本身配置了分頁取數&Json路徑,將每次取數獲得相應路徑下的json,拼成一個一欄N行的二維表(該二維表只有一欄responseBody)

    因為每次分頁取數時獲得 json 可能不一樣,如果找不到相應json路徑,則為空

    • 如果 API 節點本身配置了分頁取數&Json 路徑為「$.data」&勾選「將解析後的JSON資料展開為二維表」,將每次取數獲得相應路徑下 json 進行拆列,拼成一個N列N行的二維表

    因為每次分頁取數時獲得 json 可能不一樣,每次將json展開二維表時,如果遇到新的屬性,則新增列

    沒有相關屬性的分頁取數,相關列為空

    回傳值格式當回應體格式為 xml 時,不支援分頁取數

    資訊類型(參數指派)

    • 回應體

    • 回應頭

    • 狀態碼

    如果參數指派同時解析回應體、回應頭、狀態碼,將每次取數獲得回應拼成一個N列N行的二維表

    4. 最佳實踐

    分頁方式:頁碼   分页取数-按页数取数

    分頁方式:偏移  分页取数-按偏移量取数

    分頁方式:游標  分页取数-分页方式为游标

    分頁方式:頁碼+嵌套循環 嵌套循环取数



    附件列表


    主题: 資料開發-定時任務
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!