Paginación
Cómo se dividen los listados en páginas con page y limit, el bloque pagination de la respuesta, cómo recorrerlo todo y cómo se combinan filtros y paginación.
Los listados grandes (miembros, extracto, feed, productos) llegan en páginas. Pides la página con dos parámetros y recibes, junto con los elementos, el bloque pagination.
Los parámetros
| Parámetro | Qué es | Por defecto | Máximo |
|---|---|---|---|
page | La página, empezando por 1 | 1 | — |
limit | Elementos 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"
La respuesta
{
"success": true,
"message": "…",
"data": [ { "…": "…" } ],
"pagination": { "page": 2, "limit": 50, "total": 137, "totalPages": 3 }
}
| Campo | Qué es |
|---|---|
page | La página devuelta |
limit | Elementos por página |
total | Cuántos elementos hay, ya con los filtros |
totalPages | Cuántas páginas hay |
Recorrerlo todo
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 y paginación
Los filtros (search, role, type, status…) se aplican antes de paginar: total y totalPages ya cuentan solo lo que coincide con el filtro.
Consejos
- Usa el mayor
limitque tenga sentido (hasta 100) para hacer menos llamadas. - No des por hecho que todos los listados están paginados: cuando uno no lo está, el bloque
paginationno viene ydatalo trae todo. - Al recorrer una lista que cambia mientras la lees (el feed, por ejemplo), un elemento puede aparecer en dos páginas; elimina duplicados por
id.