最新历史版本 :API輸入-分頁取數 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

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. 最佳實踐编辑

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

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

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

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