Paginazione
Come gli elenchi si dividono in pagine con page e limit, il blocco pagination della risposta, come scorrere tutto e come si combinano filtri e paginazione.
Gli elenchi lunghi (membri, estratto conto, feed, prodotti) arrivano in pagine. Chiedi la pagina con due parametri e ricevi, insieme agli elementi, il blocco pagination.
I parametri
| Parametro | Che cos'è | Predefinito | Massimo |
|---|---|---|---|
page | La pagina, a partire da 1 | 1 | — |
limit | Elementi per pagina | 20 | 100 |
curl -s "https://api.memberfy.net/api/profiles/list?page=2&limit=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID"
La risposta
{
"success": true,
"message": "…",
"data": [ { "…": "…" } ],
"pagination": { "page": 2, "limit": 50, "total": 137, "totalPages": 3 }
}
| Campo | Che cos'è |
|---|---|
page | La pagina restituita |
limit | Elementi per pagina |
total | Quanti elementi esistono, già filtrati |
totalPages | Quante pagine ci sono |
Scorrere tutto
let page = 1;
const all = [];
while (true) {
const { data, pagination } = await api.profiles.getList({ page, limit: 100 });
all.push(...data);
if (page >= pagination.totalPages) break;
page += 1;
}
Filtri e paginazione
I filtri (search, role, type, status…) vengono applicati prima della paginazione: total e totalPages contano già solo ciò che corrisponde al filtro.
Consigli
- Usa il
limitpiù alto che abbia senso (fino a 100) per fare meno chiamate. - Non dare per scontato che tutti gli elenchi siano paginati: quando uno non lo è, il blocco
paginationnon arriva edatacontiene tutto. - Se scorri un elenco che cambia mentre lo leggi (il feed, per esempio), un elemento può comparire in due pagine; elimina i duplicati in base all'
id.