Pular para o conteúdo

Paginação

Como as listagens se dividem em páginas com page e limit, o bloco pagination da resposta, como percorrer tudo e como filtros e paginação se combinam.

Listagens grandes (membros, extrato, feed, produtos) vêm em páginas. Você pede a página com dois parâmetros e recebe, junto com os itens, o bloco pagination.

Os parâmetros

ParâmetroO que éPadrãoMáximo
pageA página, começando em 11—
limitItens por página20100
curl -s "https://api.memberfy.net/api/profiles/list?page=2&limit=50" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID"

A resposta

{
  "success": true,
  "message": "…",
  "data": [ { "…": "…" } ],
  "pagination": { "page": 2, "limit": 50, "total": 137, "totalPages": 3 }
}
CampoO que é
pageA página devolvida
limitItens por página
totalQuantos itens existem, já com os filtros
totalPagesQuantas páginas há

Percorrer tudo

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;
}

Filtros e paginação

Os filtros (search, role, type, status…) são aplicados antes de paginar: total e totalPages já contam só o que bate com o filtro.

Dicas

  • Use o maior limit que fizer sentido (até 100) para fazer menos chamadas.
  • Não presuma que todas as listagens são paginadas: quando uma não é, o bloco pagination não vem, e data traz tudo.
  • Ao percorrer uma lista que muda enquanto você lê (o feed, por exemplo), um item pode aparecer em duas páginas; deduplique pelo id.

Relacionados