Cum pot pagina solicitările API?

Last updated: June 19, 2026

API-ul de EXPEDIERE al L2L limitează solicitările GET pentru zonele de înregistrări la 2000 de înregistrări, dacă nu se indică altfel. Ce faceți dacă aveți nevoie să obțineți mai multe? Acest articol vă va arăta cum să utilizați argumentele de interogare încorporate pentru paginare pentru a prelua înregistrări care depășesc limita impusă.

Argumente de interogare pentru paginare

Există două argumente de interogare pe care le veți utiliza pentru paginare: limit și offset.

Argumentul limit limitează numărul de înregistrări returnate de API. Dacă nu specificați un argument limit, API-ul va utiliza implicit 100 de înregistrări.

Argumentul offset îi spune API-ului cu ce înregistrare să înceapă. Acesta este un contor bazat pe zero, astfel încât prima pagină ar avea offset=0, iar API-ul ar returna înregistrările 0-99. Dacă limitați rezultatele la 100 de înregistrări pe pagină, valoarea offset pentru a doua pagină ar fi 100.

Exemplu

Iată un exemplu de script pentru a prelua mai multe înregistrări folosind Python 2.7. Acordați o atenție deosebită buclei 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)

Metodă alternativă de paginare a solicitărilor API

Adesea este posibil să aveți nevoie să extrageți date din L2L unde se adaugă periodic date noi. De exemplu, Expedierele sunt adăugate de multe ori pe oră. Puteți utiliza următorul proces pentru a extrage date din zone care se modifică frecvent:

Pasul 1: Construiți URL-ul. Acest URL ar trebui să utilizeze unul dintre parametrii magici de sortare pentru a limita cantitatea de date pe care o returnați. În acest exemplu, doresc să obțin o listă de Expediere care au fost create în ultima săptămână:

https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-id

După cum puteți vedea, rezultatele sunt ordonate după id, în ordine descrescătoare.

Pasul 2: Adăugați un nou parametru magic de sortare. Deoarece sortam după id, voi prelua id-ul din ultimul rezultat și îl voi adăuga la URL, astfel:

https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-id&id__gt=[last id]

Pasul 3: Continuați până când aveți 0 rezultate. Când rezultatul de la L2L este gol, ați recuperat toate înregistrările, fără lacune.

Sfaturi

  • Vă recomandăm să scrieți codul astfel încât să recupereze din API doar înregistrările de care aveți nevoie. Acest lucru se poate face folosind filtre suplimentare în solicitările API și limitând numărul total de înregistrări la o valoare rezonabilă. Dacă nu filtrați și nu limitați interogările API, serverele dvs. web pot încetini pe durata executării aplicației. Vă rugăm să procedați cu atenție.
  • Când ajungeți la sfârșitul unui set de date, veți primi un răspuns cu un obiect data gol, ca acesta:
    { limit: 100, data: [], success: true, offset: 1000 }
    Când primiți un obiect data gol, ar trebui să încheiați bucla.