Vai al contenuto

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

ParametroChe cos'èPredefinitoMassimo
pageLa pagina, a partire da 11—
limitElementi per pagina20100
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 }
}
CampoChe cos'è
pageLa pagina restituita
limitElementi per pagina
totalQuanti elementi esistono, già filtrati
totalPagesQuante 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 limit più 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 pagination non arriva e data contiene 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.

Correlati