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 یک Page با items()، hasMore() و nextCursor() برمیگرداند، و یک حلقهٔ for آیتمهایش را میپیماید. برای خواندن صفحهٔ بعد، nextCursor() را با همان فیلترها بهعنوان cursor بازگردانید.
همهٔ صفحهها
List<Map<String, Object>> contacts = client.contacts().listAll(); System.out.println(contacts.size());یک متد listAll مکاننما را تا پایان دنبال میکند و همهٔ آیتمها را در یک List برمیگرداند. شکست در هر صفحه کل فراخوانی را ناموفق میکند.
هر بار یک مورد
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 مکاننمایی را که پیشتر دنبال کرده تکرار کند میایستد، پس یک پیمایش هرگز نمیتواند تا ابد بچرخد.