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âmetro | O que é | Padrão | Máximo |
|---|---|---|---|
page | A página, começando em 1 | 1 | — |
limit | Itens por página | 20 | 100 |
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 }
}
| Campo | O que é |
|---|---|
page | A página devolvida |
limit | Itens por página |
total | Quantos itens existem, já com os filtros |
totalPages | Quantas 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
limitque fizer sentido (até 100) para fazer menos chamadas. - Não presuma que todas as listagens são paginadas: quando uma não é, o bloco
paginationnão vem, edatatraz 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.