Paginación (HAL)
Las colecciones responden en formato HAL; recorre los resultados con page y size.
Los endpoints que devuelven colecciones responden en formato HAL
(application/hal+json): los elementos van dentro de _embedded y los metadatos
de paginación en page.
Parámetros
Usa los parámetros de query page y size para recorrer los resultados:
| Parámetro | Descripción | Default |
|---|---|---|
page | Número de página, empezando en 0. | 0 |
size | Cantidad de elementos por página. No pidas más de 500, salvo que la operación indique otro máximo. | 20 |
sort[i].property / sort[i].direction | Orden, con forma indexada: sort[0].property=createdDate&sort[0].direction=DESC. Para un segundo criterio, usa sort[1]. direction es ASC o DESC. | — |
curl -g -X GET 'https://mx.stage.app.mendel.com/api/public/v1/purchases?page=0&size=20&sort[0].property=createdDate&sort[0].direction=DESC' \
-H 'X-API-KEY: tu_api_key_aqui' \
-H 'Accept: application/hal+json'Estructura de la respuesta
Los elementos viven bajo _embedded; page describe el total y la página actual:
{
"_embedded": {
"purchases": [
{ "uniqueCode": "…", "amount": 2358.00, "currency": "MXN" }
]
},
"page": {
"size": 20,
"totalElements": 42,
"totalPages": 3,
"number": 0
}
}Recorrer todas las páginas
page.totalPages indica cuántas páginas hay y page.number la página actual
(base 0). Sigue pidiendo hasta que page.number + 1 === page.totalPages:
No dependas de _links
La mayoría de los listados no incluyen _links en la respuesta. Recorre las
páginas incrementando page y usando page.totalPages, no siguiendo _links.next.
excludeCount desactiva el total
Con excludeCount=true la respuesta es más rápida, pero page.totalElements y
page.totalPages dejan de reflejar el total. En ese caso, sigue pidiendo páginas
hasta recibir una con menos elementos que size.
Pide siempre un orden
Sin sort, el orden de los resultados no está garantizado y una misma consulta
paginada puede repetir u omitir elementos entre páginas. Envía un orden explícito.
La colección puede estar vacía
Una página válida puede traer _embedded sin elementos (o ausente) cuando no hay
resultados. Revisa siempre page.totalElements antes de asumir que hay datos.