Saltar para a documentação
Java

Paginação

Uma página, todas as páginas ou um item de cada vez.

Uma página

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

Um método list devolve uma Page com items(), hasMore() e nextCursor(), e um ciclo for percorre os seus itens. Passe nextCursor() de volta como cursor, com os mesmos filtros, para ler a página seguinte.

Todas as páginas

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

Um método listAll segue o cursor até ao fim e devolve todos os itens numa só List. Uma falha em qualquer página faz falhar a chamada inteira.

Um item de cada vez

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

Um método iterate devolve um PagedIterable, que só pede a página seguinte quando o ciclo lá chega, por isso um break interrompe os pedidos. stream() dá o mesmo percurso como um Stream, e toList() recolhe-o.

Um iterador para quando a API repete um cursor que ele já seguiu, por isso um percurso nunca pode ficar em ciclo para sempre.