検索APIでは、offsetクエリパラメータとlimitクエリパラメータを使用したオフセットベースのページネーションがサポートされます。マーカーベースのページネーションはサポートされません。
APIによるページネーション
検索結果の最初のページを取得するには、APIをoffsetパラメータを指定せずに呼び出すか、offsetを0に設定して呼び出す必要があります。limitフィールドは省略可能です。
curl https://api.box.com/2.0/search?query=sales&offset=0&limit=100 \
-H "authorization: Bearer ACCESS_TOKEN"
エントリの次のページを取得するには、以前のoffset値と以前の結果で返された制限の合計 (previous_offset + previous_limit) と等しいoffsetパラメータを指定して、APIを呼び出す必要があります。
curl https://api.box.com/2.0/search?query=sales&offset=100&limit=100 \
-H "authorization: Bearer ACCESS_TOKEN"
offsetは、レスポンス配列内のエントリのサイズではなく、以前のlimit分だけ加算されますので注意してください。これは制限を下回る可能性があるためです。一般的には、レスポンスオブジェクトのlimitの値を使用してoffset値を加算することをお勧めします。
次のoffset値がレスポンスオブジェクト内のtotal_count値を超えている場合、項目の最終ページはリクエスト済みです。この時点では、これ以上取得する項目がありません。
オフセットベースのページネーションの詳細を確認する
SDKによるページネーション
Boxの各SDKには、APIによるページネーションのサポートが組み込まれています。以下のコードサンプルでは、検索APIでのページネーションの使用方法を示します。
long offsetValue = 0;
long limitValue = 50;
BoxSearch boxSearch = new BoxSearch(api);
BoxSearchParameters searchParams = new BoxSearchParameters();
searchParams.setQuery("sales");
PartialCollection<BoxItem.Info> page1 = boxSearch.searchRange(offsetValue, limitValue, searchParams);
offsetValue += 50;
PartialCollection<BoxItem.Info> page2 = boxSearch.searchRange(offsetValue, limitValue, searchParams);