Listar, filtrar y ordenar registros desde la API

Para tener un ejemplo sencillo utilizaremos impuestos, que tiene pocos elementos. Para ello haz una consulta de tipo GET a la url http://localhost:8000/api/3/impuestos

listado api facturascripts

Este listado viene por defecto limitado a 50 elementos y empieza por el primer elemento. Por tanto, sería equivalente a añadir como parámetros ?limit=50&offset=0. Hay que tener esto en cuenta, porque puede que para su aplicación sea conveniente leer más o menos registros de golpe.

Paginación

Para obtener más resultados será necesario indicar a partir de qué elemento queremos seguir recibiendo datos. Para este ejemplo seguiremos a partir del 1, es decir, obtenermos 50 elementos a partir del 1 (nos saltamos el primero, que es el 0):

http://localhost:8000/api/3/impuestos?offset=1

paginar listado api facturascripts

Más ejemplos de paginación:

Partiendo de los parámetros offset y limit, podemos montar la paginación de la forma que sea más conveniente:

Para un limit de 3 (3 elementos por página):

  • Página 1: ?offset=0&limit=3: devolverá los elementos 0, 1, 2.
  • Página 2: ?offset=3&limit=3: devolverá los elementos 3, 4, 5.
  • Página 3: ?offset=6&limit=3: devolverá los elementos 6, 7, 8.

Filtros

Podemos aplicar distintos filtros al listado para obtener solamente aquellos resultados que concuerden con los filtros. Para ello simplemente debemos añadir el parámetro filter[nombre_columna]=valor

Filtrado por codimpuesto

Obtener todos los registros con el valor IVA21 en coddivisa:

http://localhost:8000/api/3/impuestos?filter[codimpuesto]=IVA21

Filtrado por codimpuesto y tipo

Obtener todos los registros con el valor IVA21 en codimpuesto y el valor 1 en tipo:

http://localhost:8000/api/3/impuestos?filter[codimpuesto]=IVA21&filter[tipo]=1

Filtrar por iva

Obtener todos los registros con un valor de iva superior a 8:

http://localhost:8000/api/3/impuestos?filter[iva_gt]=8

Operadores

Los filtros por defecto aplican el operador "=", pero es posible aplicar otros operadores añadiendo un sufijo al nombre de la columna. Ejemplos:

  • filter[tasaconv_gt]=2 -> tasaconv mayor que 2.
  • filter[tasaconv_gte]=2 -> tasaconv mayor o igual que 2.
  • filter[tasaconv_lt]=2 -> tasaconv menor que 2.
  • filter[tasaconv_lte]=2 -> tasaconv menor o igual que 2.
  • filter[tasaconv_neq]=2 -> tasaconv distinto de 2.
  • filter[descripcion_like]=PESO -> descripción contiene PESO.

Operación al aplicar los filtros

Por defecto cada filtro se aplica con una operación AND, es decir, se aplican todos los filtros a los resultados, pero podemos hacer que la operación sea OR. Por ejemplo para obtener el listado de todas las divisas que contengan PESO en su descripción O QUE su tasaconv sea mayor que 2.

http://localhost:8000/api/3/divisas?filter[descripcion_like]=PESO&filter[tasaconv_gt]=2&operation[tasaconv_gt]=OR

Ordenación

Obtener todos los registros que en descripcion contengan PESOS y ordenados por coddivisa de forma descendente:

http://localhost:8000/api/3/divisas?filter[descripcion_like]=PESOS&sort[coddivisa]=DESC

Count o Total de registros

En la respuesta de la API, en el campo X-Total-Count de la cabecera recibimos el número total de registros de la consulta, sin aplicar limit ni offset, es decir:

  • Si estamos consultamos productos, ahí tendremos el número total de productos.
  • Si estamos consultando todos los productos de la familia X, lo que tendremos es el número total de productos de la familia X.
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.30443s

Soporte