Las integraciones conectan un sitio con un servicio externo una sola vez. Las consultas usan una integración para obtener datos en una página, y los enlaces de datos leen el resultado como queries.name.data.
Integraciones
Agrega una en el espacio de trabajo Data. Completa la configuración de conexión, ingresa los secretos (tokens, contraseñas, claves de API), guarda y presiona Run test en Test connection. Los administradores crean y editan integraciones; los editores pueden usarlas en consultas y probarlas.
Qué necesitas
Las etiquetas del formulario salen de los nombres de la configuración, así que se leen como Base url o Ssl.
- REST: la Base url y, para la autenticación, un Bearer token, un Username y Password de autenticación basic, o una API key con el nombre de su encabezado o de su parámetro de query.
- GraphQL: el Endpoint, y un Bearer token o una API key si necesita autenticación.
- PostgreSQL: Host, Port, Database, User y Password, de los datos de conexión de tu proveedor (en Neon, Connect en el dashboard del proyecto; en Supabase, Connect en la parte superior del proyecto).
- Supabase: la Project url y una API key de la configuración de API del proyecto. La clave anon respeta la seguridad a nivel de fila; la clave service-role la omite, así que úsala solo en flujos de trabajo de servidor.
- Airtable: el Base id (la parte
app…de la URL de la base) y un Personal access token condata.records:read(ydata.records:writepara cambiar registros) en esa base. - Google Sheets: el Spreadsheet id de la URL de la hoja, y una Service account key (JSON) con la hoja compartida con el email de la cuenta de servicio. Una API key basta para leer hojas que son públicas en la web.
- Resend: un remitente Default from en un dominio verificado en Resend, y una API key; basta con una clave de acceso de envío.
- Claude: una API key de la Claude Console.
- OpenAI: una API key de la plataforma de OpenAI. Base url puede apuntar a cualquier API compatible con OpenAI.
PostgreSQL
Completa el host, el puerto, la base de datos y el usuario, y la contraseña como secreto. Usa un rol que tenga solo los permisos que el sitio necesita. Escribe SQL con marcadores $1, $2… y pasa los valores en params; los valores nunca se pegan dentro del SQL. Query se ejecuta en una transacción de solo lectura, así que no puede cambiar datos; Execute sí puede escribir. Los resultados vuelven como { rows, rowCount, columns, truncated }: define la ruta de respuesta como rows para una lista de colección.
Crear una consulta
Elige la integración y la operación
Por ejemplo, Request de REST, Query de GraphQL o List items del CMS.
Completa la entrada
Cualquier valor de entrada puede ser una expresión. Lee variables para que la consulta reaccione:
vars.search,page.params.slug.Elige cuándo se ejecuta
Elige un modo (abajo). Ejecútala una vez en el editor para ver el resultado y tener autocompletado en sus campos.
Acota el resultado
Define una ruta de respuesta como
data.itemspara quequeries.products.datasea el arreglo que quieres.
{
"name": "products",
"integrationId": "int_shop_api",
"operation": "rest.request",
"input": {
"method": "GET",
"path": "/products",
"query": { "search": { "$expr": "vars.search" } }
},
"responsePath": "data.items",
"run": { "mode": "client", "on": "load", "debounceMs": 250 }
}
Estática, de servidor o de cliente
| Modo | Se ejecuta | Úsala para |
|---|---|---|
| Static | al publicar; el resultado queda incrustado en el HTML | páginas de marketing, contenido del CMS, el mejor SEO |
| Server | en cada solicitud en el edge, opcionalmente en caché por N segundos | datos frescos o personalizados que aun así deben indexarse |
| Client | en el navegador, al cargar y cada vez que cambian sus entradas (con debounce), o solo desde flujos de trabajo | búsqueda, filtros, dashboards |
Leer una consulta
queries.name.data: el resultado.queries.name.loading: true mientras se ejecuta. Enlaza a esto la visibilidad de un indicador de carga.queries.name.error:{ message, code }o null.queries.name.updatedAt: cuándo llegó el último resultado.
Vuelve a ejecutar una consulta de cliente desde un flujo de trabajo con Refetch query. Para ejecutar desde una página una operación que escribe datos o cuesta dinero, usa Run server workflow con un flujo de trabajo de servidor llamado desde páginas. Las listas muestran resultados de consultas con listas de colección.