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ètre | Type | Défaut | Description |
|---|
page | entier | 0 | Index de page commençant à zéro |
size | entier | 20 | Nombre d’éléments par page (max 100) |
sort | chaîne | variable | Champ 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}"
{
"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
| Champ | Type | Description |
|---|
content | tableau | Les éléments de la page courante |
page.number | entier | Index de la page courante (commence à zéro) |
page.size | entier | Nombre d’éléments par page |
page.totalElements | entier | Nombre total d’éléments sur toutes les pages |
page.totalPages | entier | Nombre total de pages |
Naviguer entre les 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.