Paginación (HAL)

Las colecciones responden en formato HAL; recorre los resultados con page y size.

Guía

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ámetroDescripciónDefault
pageNúmero de página, empezando en 0.0
sizeCantidad 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].directionOrden, 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.

En esta página