Skip to main content

Pagination

Tous les endpoints de listing qui retournent plusieurs éléments utilisent une pagination par pages propulsée par Page<T> de Spring Data.

Paramètres de requête

ParamètreTypeDéfautDescription
pageentier0Index de page commençant à zéro
sizeentier20Nombre d’éléments par page (max 100)
sortchaînevariableChamp et direction de tri (ex : createdAt,desc)

Exemple de requête

curl "https://api.colismove.com/v1/api/annonces?page=0&size=10&sort=dateDepart,asc" \
  -H "Authorization: Bearer {token}"

Format de la réponse

{
  "content": [
    { "id": 1, "villeDepart": "Paris", "villeArrivee": "Lyon" },
    { "id": 2, "villeDepart": "Marseille", "villeArrivee": "Toulouse" }
  ],
  "page": {
    "number": 0,
    "size": 10,
    "totalElements": 47,
    "totalPages": 5
  }
}

Champs de la réponse

ChampTypeDescription
contenttableauLes éléments de la page courante
page.numberentierIndex de la page courante (commence à zéro)
page.sizeentierNombre d’éléments par page
page.totalElementsentierNombre total d’éléments sur toutes les pages
page.totalPagesentierNombre total de pages
Pour itérer sur l’ensemble des pages :
let page = 0;
let totalPages = 1;

while (page < totalPages) {
  const response = await fetch(`/v1/api/annonces?page=${page}&size=20`);
  const data = await response.json();

  // Traiter data.content

  totalPages = data.page.totalPages;
  page++;
}
La taille maximale d’une page est de 100 éléments. Les requêtes excédant cette limite sont automatiquement plafonnées.