API web de Airtable: usar filterByFormula o parámetros para ordenar
  • 27 Mar 2024
  • 4 Minutos para leer
  • Oscuro
    Ligero
  • PDF

API web de Airtable: usar filterByFormula o parámetros para ordenar

  • Oscuro
    Ligero
  • PDF

Article Summary

Aprende a filtrar u ordenar los resultados de una respuesta de la API.

Introducción

Disponibilidad en planTodos los tipos de plan
Permisos

Acceso basado en token: para hacer solicitudes a la API, deberás autenticar con uno de los métodos descritos aquí.

Filtrar registros en las solicitudes a la API

Existen dos maneras de filtrar registros en las solicitudes a la API:

  1. Una manera de filtrar los registros es pasar un parámetro view en una solicitud a la API que tenga el ámbito de lista de registros con lo que se obtiene solo los registros tal y como aparecen en una vista de tabla específica. El enlace anterior contiene más detalles sobre cómo pasar el parámetro view en una solicitud.
  2. Otra manera de filtrar registros en una llamada que contenga un ámbito de lista de registros es usar el parámetro filterByFormula, que describiremos con más detalle a continuación.

Al filtrar una respuesta de API con el parámetro filterByFormula, se debe usar una fórmula válida que evaluará cada registro. Esta fórmula deberá incluirse en la tabla de la base donde se solicita la llamada a la API. 

Para ilustrarlo, supongamos que tienes una tabla de sabores de helados:

Si se incluye un ámbito de lista de registros en una solicitud a la API a esta tabla sin ningún parámetro, se devolverán todos los sabores. Ahora, digamos que solo queremos devolver sabores con calificación de 5 estrellas con el parámetro filterByFormula:

Paso 1

El primer paso es crear un campo de fórmula en la tabla que contiene los sabores que pueda evaluar si el sabor tiene una calificación de 5 estrellas en el campo Calificación. En este ejemplo, se podría usar una fórmula sencilla (Calificación = 5) que genera un resultado booleano verdadero o falso, pero tu caso de uso real puede ser más complejo.

Paso 2

Como puedes ver a continuación, la fórmula ingresada funciona correctamente: solo "Cookies & Cream" y "Cookie Dough" tienen un valor de '1', porque son los únicos sabores que tienen 5 estrellas. Ahora podemos estar seguros de que, si usamos esta fórmula como nuestro parámetro filterByFormula, devolverá los valores apropiados a lo largo del tiempo.

Paso 3

Después, deberás añadir la fórmula al parámetro filterByFormula en la solicitud.

Nota
Si no usas nuestro cliente oficial de Javascript, Airtable.js , la fórmula debe codificarse primero antes de pasarla como valor. Puedes usar esta herramienta para codificar la fórmula o la URL antes de usarlas en una solicitud a la API.
Paso 4

Ahora deberías tener una URL codificada parecida a esta:
https://api.airtable.com/v0/{your_app_id}/Flavors?filterByFormula=Rating%3D5

Paso 5

Ahora puede probar la solicitud en una herramienta como Postman. En la prueba que se muestra a continuación, puedes ver que solo se devuelven "Cookies & Cream" y "Cookie Dough":

Filtrar dependencias

  • Si la respuesta no filtra los registros esperados, te recomendamos volver a comprobar primero la fórmula en la base de Airtable para asegurarte de que devuelve los valores esperados en el campo de fórmula de los registros que esperabas que se filtraran. 
  • Cualquier registro que aparezca como 0, false, NaN, [] o #Error! en la fórmula, no se incluirá en la respuesta.
  • Si el parámetro filterByFormula se combina con el parámetro view, solo se devolverán los registros de esa vista que cumplan la fórmula.

Ordenar registros en las solicitudes a la API

Existen dos maneras de ordenar los registros en las solicitudes a la API:

  1. Una manera de filtrar los registros es pasar un parámetro view en una solicitud a la API que tenga el ámbito de lista de registros con lo que se obtiene los registros en la respuesta de la API para que aparezcan en una vista de tabla específica. El enlace anterior contiene más detalles sobre cómo pasar el parámetro view en una solicitud.
  2. La segunda manera de filtrar los registros en una solicitud de lista de registros es usar el parámetro ordenar. Más adelante abordamos los pasos generales para hacer esto.

Siguiendo con el ejemplo de la tabla de sabores de helados anterior, es posible que desees devolver los sabores ordenados de mayor a menor calificación:

Paso 1

Primero, deberás crear una URL codificada para usarla en la solicitud a la API. Al igual que con filterByFormula, puedes usar esta herramienta para codificar una URL con una ordenación en el campo Calificación, con la dirección "desc". Será algo parecido a esto:

https://api.airtable.com/v0/{your_app_id}/Flavors?sort%5B0%5D%5Bfield%5D=Rating&sort%5B0%5D%5Bdirection%5D=desc

Nota
Se podría usar un valor "asc" al final de la fórmula en lugar de "desc" para ordenar los resultados en orden ascendente.  
Paso 2

Luego, deberás añadir la URL codificada como un objeto en el parámetro sort de la solicitud a la API.

Paso 3

Ahora puedes probar la solicitud con una herramienta como Postman para ver si el parámetro funcionó y si los registros que se devuelven están ordenados por calificación, de mayor a menor:

Nota
Si se combina con un parámetro view, el parámetro sort anula la ordenación de la vista especificada en el parámetro view. Si no se incluye ni el parámetro sort ni el parámetro view, el orden de los registros será arbitrario.


Codificar la URL

Si no usas nuestro cliente oficial de Javascript, Airtable.js, es probable que tengas que codificar los valores de los parámetros para obtener una URL válida. Puedes usar nuestro codificador de URL para hacerlo, rellenando tu fórmula y otros valores de parámetros y copiando la URL resultante:

360094731073Image2020-09-29at123716pm.png


Preguntas frecuentes

¿Puedo usar las ID de campo en mi llamada a la API con filterByFormula?

No. Solo puedes usar los nombres de campo. Recomendamos usar descripciones de campo para indicar las implicaciones de cambiar cualquier nombre de campo que se use en las llamadas a la API.

¿Por qué mi parámetro filterByFormula no filtra correctamente?

Puede que no sea una fórmula válida; recomendamos comprobar la fórmula añadiéndola a un campo de la cuadrícula de Airtable. Esto ayudará a confirmar qué valores se espera que filtre la fórmula.


¿Te ha sido útil este artículo?