Paginate: API Endpoint

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

APIエンドポイントに対するページネーションに関する詳細は、問題のAPIに大きく依存します。この例では、レコードの次のページを示すURLを含む単純なリンクヘッダーを想定します。以下は、Paginate: Set a Max Page Indexで導入された概念と実装に基づいています。

まず、ページネーションオブジェクトに新しい値をいくつか追加します。

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

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

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

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

  • Connection:接続コンテキストをヘルパーフローに渡します。

これが結果のオブジェクトです。

コピー
{
"index":0,
"max_page_indext":10,
"break":false,
"url":”https://app.scaleft.com/v1/teams/demo/projects?limit=200&offset=0”,
"results_list":[],
"Connection":{
"blob":{
"api_key":"SlESyU45eGxqM8dDi3ucmodj3sJ1AGGQ"
}
}
}

ヘルパーフローでは、イベントカードで定義した入力が、上記のオブジェクトで定義したキー、すなわちpage_index max_page_countbreakurlresults_listConnectionと一致する必要があります。プラットフォームがページネーションオブジェクトから値を抽出し、フローでアクセスできるようにします。

url値を使用して、HTTP Raw Request関数を使用してサービスを呼び出します。応答が受信されると、ヘルパーフローはurlresults_listを管理して、ページネーション関数の次の反復に備えます。Object Getカードを使用して、headersオブジェクトからリンクヘッダーを抽出し、bodyオブジェクトから結果のページを抽出します。

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

これが結果のオブジェクトです。

コピー
{
"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":"SlESyU45eGxqM8dDi3ucmodj3sJ1AGGQ"
}
}
}

最後に、データにページが残っていないことをAPIから通知する方法を決定し、max_page_indexの場合と同じような方法で管理する必要があります。この例では、結果の最後のページを受信すると、サービスがヘッダーからリンクキーをドロップすると仮定します。リンクキーが見つからないか空の場合は、Object Unset関数を使用して改ページキーと値のペアをページネーションオブジェクトから削除する必要があります。ページネーションオブジェクトがブレークキーなしで親フローに戻されると、ページネーションは停止します。

これが結果のオブジェクトです。

コピー
{
"index":6,
"max_page_index":10,
"url": "",
"results_list":[
“1”,
“2”,
“3”,
“4”,
“5”,
“6”,
“7”,
“8”,
“9”,
“10”,
"..."
],
"Connection":{
"blob":{
"api_key":"SlESyU45eGxqM8dDi3ucmodj3sJ1AGGQ"
}
}
}

関連項目

Paginate

Paginate: Set a Max Page Index

Workflowsの関数

Workflows要素