Pagination
à l'aide du continuation token renvoyé, tu peux le rajouter à la fin de ton appel pour obtenir la suite, ça donne ça a peu près.
organizations/hugobordeauxha-deleted/payments?continuationtoken=20180215135600_1914333
Nos API paginées ne fournissent ni le nombre total d’éléments (totalItems), ni le nombre de pages (totalPages). À la place, elles utilisent un continuation token pour enchaîner les appels page par page.
Ce mécanisme est courant dans les APIs pouvant servir de gros volume de données.
🔁 Continuation Token
Un continuationtoken
est un identifiant opaque retourné par une API pour indiquer comment accéder à la prochaine page de résultats.
Exemple de réponse API :
{
"items": [ ... ],
"continuationToken": "20180215135600_1914333"
}
- items : les données de la page actuelle
- continuationToken : à réutiliser pour obtenir la page suivante
Pour appeler la page suivante, il faudra donc faire appeler le point d'API:
organizations/hugobordeauxha-deleted/payments?continuationtoken=20180215135600_1914333
Fonctionnement
- Appeler l’API sans token pour obtenir la première page.
- Lire le champ items → stocker ou compter les résultats.
- Lire le champ continuationToken :
- S’il existe : relancer une requête avec ce token.
- S’il est absent ou nul : la pagination est terminée.
🔢 Comment compter le nombre total d’items
Puisque l’API ne donne pas le total, il faut parcourir toutes les pages et compter les éléments manuellement.
💻 Exemple en Python
import requests
def count_all_items(api_url, headers=None):
total = 0
token = None
while True:
params = {}
if token:
params['continuationToken'] = token
response = requests.get(api_url, params=params, headers=headers)
response.raise_for_status()
data = response.json()
items = data.get('items', [])
total += len(items)
token = data.get('continuationToken')
if not token:
break
return total
🧪 Bonnes pratiques
- Toujours vérifier si le champ items existe et est une liste.
- Ne pas stocker ou manipuler les tokens.
Updated 1 day ago