API

Conecta con servicios externos mediante solicitudes HTTP

El bloque API te permite conectar tu flujo de trabajo a servicios externos a través de endpoints de API mediante solicitudes HTTP. Admite varios métodos como GET, POST, PUT, DELETE y PATCH, lo que te permite interactuar con prácticamente cualquier endpoint de API.

URL*
Introduce la URL
Método*
Select...
Parámetros de consulta
Parámetros de consulta
Encabezados
Encabezados
Encabezados personalizados (los encabezados estándar como User-Agent, Accept, etc. se añaden automáticamente)
Cuerpo
code
Introduce JSON...

Descripción general

El bloque API te permite:

Conecta con servicios externos: realiza solicitudes HTTP a API REST y servicios web

Envía y recibe datos: procesa respuestas y transforma datos de fuentes externas

Integra plataformas de terceros: conéctate con servicios como Stripe, Slack o API personalizadas

Gestiona la autenticación: admite varios métodos de autenticación, incluidos tokens Bearer y claves de API

Cómo funciona

El bloque API procesa solicitudes HTTP mediante un enfoque estructurado:

  1. Configurar la solicitud - Define la URL, el método, los encabezados y los parámetros del cuerpo
  2. Ejecutar la solicitud - Envía la solicitud HTTP al endpoint especificado
  3. Procesar la respuesta - Gestiona los datos de la respuesta, los códigos de estado y los encabezados
  4. Gestión de errores - Dirige las solicitudes fallidas a una ruta de error explícita

Opciones de configuración

URL

La URL del endpoint para la solicitud de API. Puede ser:

  • Una URL estática introducida directamente en el bloque
  • Una URL dinámica conectada desde la salida de otro bloque
  • Una URL con parámetros de ruta

Método

Selecciona el método HTTP para tu solicitud:

  • GET: Recupera datos del servidor
  • POST: Envía datos al servidor para crear un recurso
  • PUT: Actualiza un recurso existente en el servidor
  • DELETE: Elimina un recurso del servidor
  • PATCH: Actualiza parcialmente un recurso existente

Parámetros de consulta

Define pares clave-valor que se añadirán a la URL como parámetros de consulta. Por ejemplo:

Key: apiKey
Value: your_api_key_here

Key: limit
Value: 10

Estos se añadirían a la URL como ?apiKey=your_api_key_here&limit=10.

Encabezados

Configura los encabezados HTTP de tu solicitud. Los encabezados comunes incluyen:

Key: Content-Type
Value: application/json

Key: Authorization
Value: Bearer your_token_here

Cuerpo de la solicitud

Para los métodos que admiten un cuerpo de solicitud (POST, PUT, PATCH), puedes definir los datos que se enviarán. El cuerpo puede ser:

  • Datos JSON introducidos directamente en el bloque
  • Datos conectados desde la salida de otro bloque
  • Datos generados dinámicamente durante la ejecución del flujo de trabajo

Acceso a los resultados

Una vez completada una solicitud de API, puedes acceder a sus salidas:

  • <api.data>: Los datos del cuerpo de la respuesta de la API
  • <api.status>: Código de estado HTTP (200, 404, 500, etc.)
  • <api.headers>: Encabezados de respuesta del servidor
  • <api.error>: Detalles del error si la solicitud falló

Funciones avanzadas

Construcción dinámica de URL

Construye URL dinámicamente usando variables de bloques anteriores:

// In a Function block before the API
const { userId } = <start>;
return `https://api.example.com/users/${encodeURIComponent(userId)}/profile`;

Reintentos de solicitudes

El bloque API no reintenta automáticamente tiempos de espera, fallos de conexión ni respuestas HTTP 429 o 5xx. Las solicitudes fallidas generan un error de bloque. Conecta su ruta de error a la lógica de recuperación; implementa explícitamente reintentos limitados y esperas en el flujo cuando sean necesarios. Reintenta solo solicitudes que puedan repetirse con seguridad.

Validación de respuestas

Conecta un bloque Function a la salida normal del bloque API para validar una respuesta correcta. Conecta la recuperación a la ruta de error del bloque API, no a una Condition después de su salida normal. Usa <function.result> como URL de API con la Function anterior.

const data = <api.data>;
if (!data || typeof data !== 'object') {
  throw new Error('Expected an object response');
}
return data;

Entradas y salidas

  • URL: El endpoint al que se envía la solicitud

  • Method: Método HTTP (GET, POST, PUT, DELETE, PATCH)

  • Query Parameters: Pares clave-valor para los parámetros de URL

  • Headers: Encabezados HTTP para autenticación y tipo de contenido

  • Body: Carga útil de la solicitud para los métodos POST/PUT/PATCH

  • api.data: Datos del cuerpo de la respuesta de la llamada a la API

  • api.status: Código de estado HTTP devuelto por el servidor

  • api.headers: Encabezados de respuesta del servidor

  • api.error: Detalles del error si la solicitud falló

  • Response Data: Contenido principal de la respuesta de la API

  • Status Information: Estado HTTP y detalles del error

  • Access: Disponible en los bloques posteriores a la llamada a la API

Casos de uso de ejemplo

Obtener datos del perfil de usuario

Escenario: recuperar información del usuario desde un servicio externo

  1. El bloque Function construye el ID de usuario a partir de la entrada
  2. El bloque API llama al endpoint GET /users/{id}
  3. El bloque Function procesa y formatea los datos del usuario
  4. El bloque Response devuelve el perfil formateado

Procesamiento de pagos

Escenario: Procesar pago a través de la API de Stripe

  1. El bloque de función valida los datos de pago
  2. El bloque de API crea la intención de pago a través de Stripe
  3. El bloque de condición gestiona el éxito/fallo del pago
  4. El bloque de Supabase actualiza el estado del pedido en la base de datos

Buenas prácticas

  • Utiliza variables de entorno para datos confidenciales: No codifiques directamente las claves de API ni las credenciales
  • Gestiona los errores adecuadamente: Conecta la lógica de manejo de errores para solicitudes fallidas
  • Valida las respuestas: Verifica los códigos de estado y los formatos de respuesta antes de procesar los datos
  • Respeta los límites de velocidad: Ten en cuenta los límites de velocidad de la API e implementa la limitación adecuada