Skip to main content

Pagination

Toutes les routes qui renvoient des listes (offres, candidatures, candidats, etc.) utilisent la pagination Spring Data Page<T>.

Paramètres de requête

ParamètreTypeDéfautDescription
pageint0Numéro de page (commence à 0)
sizeint20Nombre d’éléments par page
sortstringTri au format champ,direction (ex: createdAt,desc)
La valeur maximale de size est 100. Au-delà, l’API plafonne silencieusement à 100.

Format de réponse

{
  "content": [
    { "id": 1, "titre": "Développeur Java", "..." },
    { "id": 2, "titre": "Data Analyst", "..." }
  ],
  "page": {
    "size": 20,
    "number": 0,
    "totalElements": 143,
    "totalPages": 8
  }
}

Exemple — Offres triées par date

curl "https://api.wethehivers.com/v1/api/offres?page=0&size=10&sort=createdAt,desc" \
  -H "Authorization: Bearer <token>"

Itération complète — JavaScript

async function fetchAllOffres() {
  const all = [];
  let page = 0;
  while (true) {
    const res = await fetch(`/api/offres?page=${page}&size=100`, {
      headers: { Authorization: `Bearer ${token}` }
    });
    const { content, page: p } = await res.json();
    all.push(...content);
    if (page >= p.totalPages - 1) break;
    page++;
  }
  return all;
}

Tri multi-champs

Pour trier par plusieurs colonnes, répéter le paramètre sort :
?sort=featured,desc&sort=createdAt,desc