ページ割り

ガイド 検索 ページ割り

ページ割り

検索APIでは、offsetクエリパラメータとlimitクエリパラメータを使用したオフセットベースのページ割りがサポートされます。

APIによるページ割り

検索結果の最初のページを取得するには、APIをoffsetパラメータを指定せずに呼び出すか、offset0に設定して呼び出す必要があります。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でのページ割りの使用方法を示します。

Java
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);
.NET
BoxCollection<BoxItem> page1 = await client.SearchManager
    .QueryAsync("sales", limit: 50);
BoxCollection<BoxItem> page2 = await client.SearchManager
    .QueryAsync("sales", limit: 50, offset: 50);
Python
page1 = client.search().query(query='sales', limit=50)
page2 = client.search().query(query='sales', limit=50, offset=50)
Node
const page1 = await client.search.query('sales', {
  limit: 50
})
const page2 = await client.search.query('sales'. {
  limit: 50,
  offset: 50
})