Sign inGet Started

Paginacja

Każdy paginowany endpoint listowy w Bird API stosuje ten sam kontrakt kursorowy: te same parametry żądania, tę samą kopertę odpowiedzi, tę samą semantykę kursorów. Poznaj go raz na GET /v1/email/messages, a będzie działać wszędzie.
Niewielka liczba ograniczonych kolekcji (na przykład plany rozliczeniowe) zwraca zwykłą tablicę {"data": [...]} bez pól paginacji. Pozostałe endpointy implementują pełny kontrakt paginacji.

Parametry żądania

ParametrTypOpis
limitintegerMaksymalna liczba elementów na stronę. Od 1 do 100; domyślnie 25.
starting_afterstringKursor z pola next_cursor poprzedniej odpowiedzi. Zwraca elementy bezpośrednio po tej pozycji.
ending_beforestringKursor z pola prev_cursor poprzedniej odpowiedzi. Zwraca elementy bezpośrednio przed tą pozycją.
include_totalbooleanGdy true, odpowiedź zawiera licznik total. Domyślnie false. Dostępne tylko na endpointach zarządzania. Endpointy danych o dużym wolumenie (wiadomości, zdarzenia, supresje) nie obsługują tego parametru.
Kursory są nieprzezroczyste: nie są identyfikatorami zasobów, a ich format może się zmienić w dowolnym momencie. Odbieraj je w odpowiedziach i przekazuj z powrotem bez zmian. Zniekształcony lub wygasły kursor zwraca 422 z kodem E01012 InvalidCursor. Rozpocznij paginację od nowa, bez kursora.
Większość endpointów listowych akceptuje też specyficzne dla zasobu parametry sort i order; dokumentacja danego endpointu opisuje dozwolone pola sortowania. Zmiana sortowania unieważnia kursory z poprzedniego porządku.

Koperta odpowiedzi

Przykład kodu
{
  "data": [{ "...": "..." }],
  "next_cursor": "WyIyMDI2LTA2LTEwVDA5OjE0OjAzWiIsICJtc2dfMDFr...",
  "prev_cursor": null,
  "refresh_cursor": "WyIyMDI2LTA2LTEwVDEyOjAwOjAwWiIsICJtc2dfMDFr...",
  "total": 1432
}
PoleOpis
dataStrona elementów.
next_cursorPrzekaż jako starting_after, aby pobrać następną stronę. null, gdy następna strona nie istnieje, co jest sygnałem do zakończenia.
prev_cursorPrzekaż jako ending_before, aby cofnąć się o stronę. null, gdy poprzednia strona nie istnieje (zawsze null na pierwszej stronie).
refresh_cursorPunkt odniesienia do odświeżenia: zapisz go, a potem przekaż jako ending_before, aby pobrać elementy, które pojawiły się od tej odpowiedzi. Różny od null zawsze, gdy data nie jest pusta.
totalŁączna liczba elementów pasujących do filtrów żądania na wszystkich stronach. Obecne tylko wtedy, gdy przekazano include_total=true; w przeciwnym razie null/brak.
next_cursor i prev_cursor są niezależne: każde z nich jest null dokładnie wtedy, gdy w danym kierunku nie ma kolejnej strony. Sprawdzaj next_cursor, aby zdecydować, czy pobierać dalej.

Przechodzenie przez wyniki

Pierwsze żądanie nie zawiera kursora. Każde kolejne przekazuje next_cursor z poprzedniej odpowiedzi jako starting_after. Kończysz, gdy zwrócona wartość to null.
Każdy Bird SDK udostępnia endpointy listowe w dwóch trybach: leniwa iteracja, która pobiera strony w tle w miarę konsumowania elementów, oraz akcesor pojedynczej strony do ręcznego sterowania kursorem.
for await (const message of bird.email.list({ status: "bounced" })) {
  console.log(message.id);
}

Limity żądań

Endpointy listowe korzystają z ogólnoorganizacyjnej polityki ograniczania liczby żądań api_list, chyba że operacja wskazuje politykę produktową. Ta przepustowość jest odrębna od pobierania zasobów, zapisów i wysyłek. Leniwa iteracja zużywa jedną jednostkę polityki na żądanie strony. Używaj największego rozmiaru strony obsługiwanego przez endpoint, aby zmniejszyć liczbę żądań.

Powiązane

Powiązane zasoby

Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.

Uzyskaj brief wdrożeniowy