Estoy usando Airtable db para obtener datos contra una entrada. Quiero obtener datos de la base de datos contra esa entrada, pero no sé cómo lograrlo.
Aquí está mi función de llamada de API de búsqueda
const fetchData = async e => { e.preventDefault(); fetch(`https://api.airtable.com/v0/${process.env.AIRTABLE_BASE_ID}/${process.env.AIRTABLE_TABLE_NAME}`, { method: 'GET', headers: { Accept: 'application/json', 'Content-Type': 'application/json', Authorization: `Bearer ${process.env.API_KEY}`, }, }) .then(response => { if (response.ok) { return response.json(); } else { throw new Error('Something went wrong'); } }) .then(rawResponse => { console.log(rawResponse); }) .catch(error => { customToast.error('Something went wrong.'); console.log('Error', error); }); };La API de Airtable tiene dos métodos GET diferentes. Uno devolverá una lista de registros y, si no incluye ningún parámetro de consulta, eventualmente le dará todos los registros de la tabla especificada. El otro método GET toma un ID de registro de Airtable y devuelve solo ese registro.
Uno de los parámetros de consulta para la solicitud GET de lista se llama filterByFormula. Puede proporcionar una fórmula de Airtable válida que se evalúe como verdadero/falso y la API solo devolverá los registros para los que la fórmula se evalúe como verdadero.
Una de las formas más fáciles es simplemente comparar el campo en Airtable con el valor que le interesa, como:
{My Field Name}='My Field Value'La solicitud GET sería algo como:
fetch( `https://api.airtable.com/v0/${process.env.AIRTABLE_BASE_ID}/${process.env.AIRTABLE_TABLE_NAME}?filterByFormula={My Field Name}='My Field Value'`, { method: 'GET', headers: { Accept: 'application/json', 'Content-Type': 'application/json', Authorization: `Bearer ${process.env.API_KEY}`, }, } ) .then(response => { if (response.ok) { return response.json(); } else { throw new Error('Something went wrong'); } }) .then(rawResponse => { console.log(rawResponse); }) .catch(error => { customToast.error('Something went wrong.'); console.log('Error', error); }); Para comparaciones más complejas, Airtable admite una variedad de funciones de comparación de texto como FIND y también tiene funciones para manejar expresiones regulares.
Esto devolverá una lista de registros, incluso si solo hay un registro en la lista. Si el campo con el que está comparando puede contener valores duplicados, debe manejar la situación en la que la respuesta de la API contiene más de un registro y decidir qué hacer.