Hoe kan ik API-verzoeken pagineren?
Last updated: June 19, 2026
De DISPATCH API van L2L beperkt GET-verzoeken voor Record Area tot 2000 records, tenzij anders aangegeven. Wat als u meer nodig hebt? In dit artikel laten we zien hoe u de ingebouwde pagineringsqueryargumenten kunt gebruiken om records op te halen die de opgelegde limiet overschrijden.
Queryargumenten voor paginering
Er zijn twee queryargumenten die u voor paginering gebruikt: limit en offset.
Het argument limit beperkt het aantal records dat door de API wordt geretourneerd. Als u geen argument limit opgeeft, retourneert de API standaard 100 records.
Het argument offset vertelt de API met welk record moet worden gestart. Dit is een telling vanaf nul, dus de eerste pagina zou offset=0 zijn en de API zou records 0-99 retourneren. Als u uw resultaten beperkt tot 100 records per pagina, zou de offset voor de tweede pagina 100 zijn.
Voorbeeld
Hier is een voorbeeldscript om meerdere records op te halen met Python 2.7. Let vooral op de while-lus.
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)Alternatieve methode voor het pagineren van API-verzoeken
Vaak moet u gegevens ophalen uit L2L waar regelmatig nieuwe gegevens worden toegevoegd. Zo worden er vele malen per uur nieuwe Verzenden toegevoegd. U kunt het volgende proces gebruiken om gegevens op te halen uit gebieden die regelmatig veranderen:
Stap 1: Bouw uw URL. Deze URL moet een van de magische sorteerparameters gebruiken om de hoeveelheid gegevens die u retourneert te beperken. In dit voorbeeld wil ik een lijst ophalen van Verzenden die in de afgelopen week zijn aangemaakt:
https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-idZoals u kunt zien, zijn de resultaten gesorteerd op de id, in aflopende volgorde.
Stap 2: Voeg een nieuwe magische sorteerparameter toe. Omdat ik op de id sorteerde, haal ik de id uit het laatste resultaat en voeg ik deze toe aan de URL, als volgt:
https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-id&id__gt=[last id]Stap 3: Ga door totdat je 0 resultaten hebt. Wanneer het resultaat van L2L leeg is, heb je alle records opgehaald, zonder hiaten.
Tips
- We raden aan je code zo te schrijven dat deze alleen de records uit de API ophaalt die je nodig hebt. Dit kun je doen door aanvullende filters te gebruiken in de API-aanvragen en het totale aantal records te beperken tot een redelijk aantal. Als je je API-query's niet filtert en beperkt, kunnen je webservers gedurende de looptijd van je applicatie vertragen. Wees voorzichtig.
- Wanneer je het einde van een gegevensset bereikt, ontvang je een antwoord met een leeg
data-object, zoals dit:
Wanneer je een leeg data-object ontvangt, moet je je lus beƫindigen.{ limit: 100, data: [], success: true, offset: 1000 }