Zur Dokumentation springen
Java

Paginierung

Eine Seite, alle Seiten oder ein Eintrag nach dem anderen.

Eine Seite

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());}

Eine list-Methode gibt eine Page mit items(), hasMore() und nextCursor() zurück, und eine for-Schleife durchläuft ihre Einträge. Übergeben Sie nextCursor() als cursor, mit denselben Filtern, um die nächste Seite zu lesen.

Alle Seiten

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

Eine listAll-Methode folgt dem Cursor bis zum Ende und gibt jeden Eintrag in einer List zurück. Ein Fehler auf einer beliebigen Seite lässt den ganzen Aufruf scheitern.

Ein Eintrag nach dem anderen

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);

Eine iterate-Methode gibt ein PagedIterable zurück, das die nächste Seite erst anfordert, wenn die Schleife sie erreicht, sodass ein break die Anfragen beendet. stream() liefert denselben Durchlauf als Stream, und toList() sammelt ihn ein.

Ein Iterator hält an, wenn die API einen Cursor wiederholt, dem er bereits gefolgt ist, sodass ein Durchlauf nie endlos kreisen kann.