¿Cómo puedo paginar las solicitudes de API?
Last updated: June 19, 2026
La API de DISPATCH de L2L limita las solicitudes GET del área de registros a 2000 registros, a menos que se indique lo contrario. ¿Qué sucede si necesita obtener más que eso? Este artículo le mostrará cómo utilizar los argumentos de consulta de paginación integrados para recuperar registros más allá del límite impuesto.
Argumentos de consulta de paginación
Hay dos argumentos de consulta que utilizará para la paginación: limit y offset.
El argumento limit limita el número de registros que devuelve la API. Si no especifica un argumento limit, la API utilizará 100 registros de forma predeterminada.
El argumento offset indica a la API con qué registro debe comenzar. Este es un conteo basado en cero, por lo que la primera página sería offset=0, y la API devolvería los registros del 0 al 99. Si limita sus resultados a 100 registros por página, el offset de la segunda página sería 100.
Ejemplo
A continuación se muestra un script de ejemplo para recuperar varios registros utilizando Python 2.7. Preste especial atención al bucle 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étodo alternativo para paginar solicitudes de la API
A menudo puede necesitar extraer datos de L2L donde se agregan datos nuevos regularmente. Por ejemplo, los Despachos se agregan muchas veces por hora. Puede utilizar el siguiente proceso para extraer datos de áreas que cambian con frecuencia:
Paso 1: Cree su URL. Esta URL debe utilizar uno de los parámetros mágicos de ordenamiento para limitar la cantidad de datos que está devolviendo. En este ejemplo, quiero obtener una lista de Despachos que se crearon durante la última semana:
https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-idComo puede ver, los resultados están ordenados por el id en orden descendente.
Paso 2: Agregue un nuevo parámetro mágico de ordenamiento. Como estaba ordenando por el id, tomaré el id del último resultado y lo agregaré a la URL, de la siguiente manera:
https://[customer].leading2lean.com/api/1.0/dispatches?auth=[auth]&site=1&created__gt=[one week ago]&order_by=-id&id__gt=[last id]Paso 3: Continúe hasta que tenga 0 resultados. Cuando el resultado de L2L esté vacío, habrá recuperado todos los registros, sin omisiones.
Consejos
- Recomendamos escribir su código para recuperar de la API únicamente los registros que necesita. Esto se puede hacer utilizando filtros adicionales en las solicitudes a la API y limitando el número total de registros a una cantidad razonable. Si no filtra ni limita sus consultas a la API, sus servidores web pueden ralentizarse durante la ejecución de su aplicación. Tenga cuidado.
- Cuando llegue al final de un conjunto de datos, recibirá una respuesta con un objeto
datavacío, como este:
Cuando obtenga un objeto de datos vacío, debe finalizar el bucle.{ limit: 100, data: [], success: true, offset: 1000 }