Paginate: API Endpoint
この関数カードはWokflows 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_count、break、url、results_list、Connectionと一致する必要があります。プラットフォームがページネーションオブジェクトから値を抽出し、フローでアクセスできるようにします。
url値を使用して、HTTP Raw Request関数を使用してサービスを呼び出します。応答が受信されると、ヘルパーフローはurlとresults_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"
}
}
}