Saltar al contenido

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ámetroQué esPor defectoMáximo
pageLa página, empezando por 11—
limitElementos 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"

La respuesta

{
  "success": true,
  "message": "…",
  "data": [ { "…": "…" } ],
  "pagination": { "page": 2, "limit": 50, "total": 137, "totalPages": 3 }
}
CampoQué es
pageLa página devuelta
limitElementos por página
totalCuántos elementos hay, ya con los filtros
totalPagesCuá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 limit que 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 pagination no viene y data lo 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.

Relacionados