MallaDocs

Consultas e integraciones

Conecta REST, GraphQL y el CMS, mantén los secretos en el servidor y elige el modo estático, servidor o cliente.

Guía de usuario

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

RESTCualquier API JSON con una URL base, encabezados por defecto y autenticación none, bearer, basic o por clave de API.
GraphQLUn endpoint más autenticación. El esquema se inspecciona una vez para alimentar el autocompletado.
CMSIncluido, sin configuración. Lista y obtiene ítems con filtros, ordenamientos y referencias.
PostgreSQLCualquier Postgres (Neon, Supabase, RDS…): SQL parametrizado sobre TLS, consultas de solo lectura, hasta 1,000 filas.
SupabaseSelect, insert, update, delete y llamadas a funciones a través de la API REST, con seguridad a nivel de fila.
AirtableLista registros por vista o fórmula, y créalos, actualízalos o elimínalos.
Google SheetsLee filas como objetos, agrega filas y actualiza rangos con una cuenta de servicio.
ResendEnvía emails transaccionales desde flujos de trabajo.
Claude y OpenAIGenera, resume y extrae texto, opcionalmente como JSON que cumple un esquema.

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 con data.records:read (y data.records:write para 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.
Una consulta de cliente en el sitio publicado
NavegadorLe pide a Malla que ejecute la consulta.
EdgeComprueba el acceso a la página y los límites de frecuencia.
EjecutorDescifra los secretos, llama a la API.
Tu APINunca ve el navegador del visitante.

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

  1. Elige la integración y la operación

    Por ejemplo, Request de REST, Query de GraphQL o List items del CMS.

  2. Completa la entrada

    Cualquier valor de entrada puede ser una expresión. Lee variables para que la consulta reaccione: vars.search, page.params.slug.

  3. 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.

  4. Acota el resultado

    Define una ruta de respuesta como data.items para que queries.products.data sea el arreglo que quieres.

json
{
  "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

ModoSe ejecutaÚsala para
Statical publicar; el resultado queda incrustado en el HTMLpáginas de marketing, contenido del CMS, el mejor SEO
Serveren cada solicitud en el edge, opcionalmente en caché por N segundosdatos frescos o personalizados que aun así deben indexarse
Clienten el navegador, al cargar y cada vez que cambian sus entradas (con debounce), o solo desde flujos de trabajobú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.