ドキュメント本文へスキップ
Java

ページネーション

1 ページ、全ページ、または 1 アイテムずつ。

1 ページ

OnePage.java
RequestOptions inbox = RequestOptions.of("folder", "inbox").limit(25);Page page = client.threads().list(inbox); for (Map<String, Object> thread : page) {    System.out.println(thread.get("id") + " " + thread.get("subject"));} if (page.hasMore()) {    Page next = client.threads().list(inbox.cursor(page.nextCursor()));     System.out.println(next.size());}

list メソッドは items()、hasMore()、nextCursor() を持つ Page を返し、for ループでその項目をたどれます。次のページを読むには、同じフィルターを付けて nextCursor() を cursor として渡します。

全ページ

EveryPage.java
List<Map<String, Object>> contacts = client.contacts().listAll(); System.out.println(contacts.size());

listAll メソッドはカーソルを最後までたどり、すべての項目を 1 つの List で返します。どのページで失敗しても、呼び出し全体が失敗します。

1 件ずつ

Iterate.java
for (Map<String, Object> thread : client.threads().iterate(RequestOptions.of("query", "invoice"))) {    if (Boolean.TRUE.equals(thread.get("hasUnread"))) {        System.out.println(thread.get("id"));         break;    }} long starred = client.threads().iterate(RequestOptions.of("labelIds", "STARRED")).stream().count(); System.out.println(starred);

iterate メソッドは PagedIterable を返します。ループがそこに到達したときにだけ次のページを要求するため、break でリクエストが止まります。stream() は同じ走査を Stream として返し、toList() はそれをまとめます。

API がすでにたどったカーソルを繰り返すとイテレーターは停止するため、走査が無限に続くことはありません。