Paginazione

Gli endpoint a lista restituiscono i dati in pagine. Nella piattaforma esistono storicamente due schemi di paginazione; lo schema specifico è indicato per ciascun endpoint nel riferimento interattivo.

Schema 1 — offset e X-Total-Count

Paginazione classica per offset. La richiesta accetta i parametri query limit (dimensione della pagina) e offset (quanti record saltare):

curl -H "Authorization: Bearer mbp_IL_TUO_TOKEN" "https://tuo-dominio/api/bots/BOT_ID/subscribers?limit=50&offset=100"

Il numero totale di record viene restituito nell'intestazione di risposta X-Total-Count. Da questa si calcola il numero di pagine: scorri aumentando offset di limit finché offset è inferiore al valore di X-Total-Count. Il corpo della risposta è un array degli elementi della pagina corrente.

Schema 2 — cursore before e has_more

Paginazione a cursore per feed ordinati per tempo (ad esempio, messaggi del dialogo). La richiesta accetta limit e il cursore opzionale before — identificatore o marcatore dell'ultimo elemento già ricevuto:

curl -H "Authorization: Bearer mbp_IL_TUO_TOKEN" "https://tuo-dominio/api/bots/BOT_ID/users/USER_ID/dialog?limit=50&before=CURSOR"

La risposta contiene una pagina di elementi e il flag has_more. Finché has_more è true, ripeti la richiesta passando in before il cursore dell'ultimo elemento ricevuto. Quando has_more diventa false — è l'ultima pagina.

Quale schema scegliere

Non sei tu a scegliere lo schema — è l'endpoint a stabilirlo. Le liste-dizionario di solito usano offset e X-Total-Count; i feed temporali usano il cursore before e has_more. Verifica sempre la pagina dell'endpoint nel riferimento.

Passo successivo