Comment puis-je paginer les requêtes d’API ?
Last updated: June 19, 2026
L’API DISPATCH de L2L limite les requêtes GET de la zone des enregistrements à 2000 enregistrements, sauf indication contraire. Que faire si vous devez en obtenir davantage ? Cet article vous montrera comment utiliser les arguments de requête de pagination intégrés pour récupérer des enregistrements au-delà de la limite imposée.
Arguments de requête de pagination
Deux arguments de requête seront utilisés pour la pagination : limit et offset.
L’argument limit limite le nombre d’enregistrements renvoyés par l’API. Si vous ne spécifiez pas d’argument limit, l’API renverra par défaut 100 enregistrements.
L’argument offset indique à l’API avec quel enregistrement commencer. Il s’agit d’un décompte basé sur zéro : la première page aurait donc offset=0, et l’API renverrait les enregistrements 0 à 99. Si vous limitez vos résultats à 100 enregistrements par page, la valeur de offset pour la deuxième page serait 100.
Exemple
Voici un exemple de script permettant de récupérer plusieurs enregistrements avec Python 2.7. Portez une attention particulière à la boucle while.
import requests
finished = False
machines = []
url = 'https://example.leading2lean.com/api/1.0/machines/'
apikey = 'fakeapikey'
limit = 2000
site = 1
while not finished:
resp = requests.get(url, {'auth': apikey, 'site': site, 'limit': limit, 'offset': len(machines)}, timeout=60)
if resp.ok:
resp_js = resp.json()
if not resp_js['success']:
raise Exception("api call failed with error: %s" % resp_js['error'])
machines.extend(resp_js['data'])
if len(resp_js['data']) < limit:
finished = True
else:
raise Exception("Failed request, error: %d" % resp.status_code)Méthode alternative de pagination des requêtes API
Vous devrez souvent extraire des données de L2L alors que de nouvelles données sont ajoutées régulièrement. Par exemple, des expéditions sont ajoutées plusieurs fois par heure. Vous pouvez utiliser le processus suivant pour extraire des données de zones qui changent fréquemment :
Étape 1 : Construisez votre URL. Cette URL doit utiliser l’un des paramètres de tri magiques afin de limiter la quantité de données que vous renvoyez. Dans cet exemple, je souhaite obtenir une liste des expéditions créées au cours de la dernière semaine :
https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-idComme vous pouvez le constater, les résultats sont triés par id, par ordre décroissant.
Étape 2 : Ajoutez un nouveau paramètre de tri magique. Puisque le tri s’effectue selon id, je vais récupérer l’id du dernier résultat et l’ajouter à l’URL, comme ceci :
https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-id&id__gt=[last id]Étape 3 : Continuez jusqu'à obtenir 0 résultat. Lorsque le résultat de L2L est vide, vous avez récupéré tous les enregistrements, sans lacune.
Conseils
- Nous vous recommandons d'écrire votre code de manière à ne récupérer de l'API que les enregistrements dont vous avez besoin. Cela peut être fait en utilisant des filtres supplémentaires dans les requêtes API et en limitant le nombre total d'enregistrements à une quantité raisonnable. Si vous ne filtrez pas et ne limitez pas vos requêtes API, vos serveurs web peuvent ralentir pendant l'exécution de votre application. Veuillez faire preuve de prudence.
- Lorsque vous arrivez à la fin d'un ensemble de données, vous recevez une réponse avec un objet
datavide, comme ceci :
Lorsque vous obtenez un objet data vide, vous devez mettre fin à votre boucle.{ limit: 100, data: [], success: true, offset: 1000 }