Paginate: API endpoint

この関数カードはConnector Builderでのみ使用可能です。

以下の例は、Paginate: set a maximum page indexで導入された概念と実装に基づいて作成したものです。

APIエンドポイントに対するページ分けの特定の動作はAPIによって異なります。この例では、レコードの次のページのURLを含む単純なリンクヘッダーについて考えてみます。

Paginate: set a maximum page indexの演習についてさらに詳しく説明するため、いくつかの新しいキーと値のペアをページネーションobject(オブジェクト)に追加します。

  • url:レコードの最初のページを取得するために使用される完全なURL。多くのサービスでは、これには制限値とオフセット値の両方が含まれます。

    • limit:オフセット位置から、いくつのレコードを取得するかを指定します。

    • offset:最後に取得されたレコードのデータセット内の位置。

  • results_list:空のアイテムのオブジェクトを指定します。新しいレコードの各ページがこのリストに追加されます。

  • Connection:ヘルパーフローに渡される接続情報。接続を含めるには、[Add event(イベントを追加)]をクリックして[Action(アクション)]を選択します。

生成されるobject(オブジェクト)は次のようになります。

コピー
{
"page_index": 0,
"max_page_index": 10,
"url": "https://app.scaleft.com/v1/teams/demo/projects?limit=200&offset=0",
"results_list": [],
"break": false,
"Connection":{
"blob":{
"api_key":"<apikeystring>"
}
}
}

ヘルパーフロー

Paginate関数にはヘルパーフローが必要です。ヘルパーフローで定義される入力は、ページネーションobject(オブジェクト)で定義したキーと一致する必要があります。

  • page_index

  • max_page_index

  • break

  • url

  • results_list

  • 接続

url値を使用して、HTTP Raw Request関数を使用してサービスを呼び出します。レスポンスを受信すると、ヘルパーフローはurlresults_listを管理して、ページネーション関数の次の反復に備えます。

Getオブジェクトカードを使用して、headersオブジェクトからリンクヘッダーを抽出し、bodyオブジェクトから結果のページを抽出します。

結果のページが応答から抽出されたら、List Union関数を使用して、以前のページネーションの反復からの既存の結果に追加する必要があります。その後、ヘルパーフロー内で収集された新しい値でページネーションオブジェクトを再構築します。

生成されるobject(オブジェクト)は次のようになります。

コピー
{
"page_index": 1,
"max_page_index": 10,
"break": false,
"url": "https://app.scaleft.com/v1/teams/demo/projects?limit=200&offset=200",
"results_list": [
"1",
"2",
"3",
"4",
"5",
"..."
],
"Connection": {
"blob": {
"api_key": "<apikeystring>"
}
}
}

最後に、結果ページがこれ以上ないため、ページネーションを停止する必要があることをAPIがどのように示すかを決定する必要があります。たとえば、サービスは最後の結果ページが送信された後にヘッダーからlinkキーを削除する場合があります。

そのため、linkキーが見つからないか空の場合は、Unsetオブジェクト関数を使用してbreakキーをページネーションオブジェクトから削除する必要があります。ページネーションオブジェクトがブレークキーなしで親フローに戻されると、ページネーションは停止します。

親フローを実行すると、最終的なobject(オブジェクト)は次のようになります。

コピー
{
"page_index":6,
"max_page_index":10,
"url": "",
"results_list":[
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"..."
],
"Connection":{
"blob":{
"api_key":"<apikeystring>"
}
}
}

関連項目

Paginate

Paginate: set a maximum page index

Workflowsの関数

Workflows要素