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.
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:
- Configurar la solicitud - Define la URL, el método, los encabezados y los parámetros del cuerpo
- Ejecutar la solicitud - Envía la solicitud HTTP al endpoint especificado
- Procesar la respuesta - Gestiona los datos de la respuesta, los códigos de estado y los encabezados
- 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: 10Estos 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_hereCuerpo 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
- El bloque Function construye el ID de usuario a partir de la entrada
- El bloque API llama al endpoint GET /users/{id}
- El bloque Function procesa y formatea los datos del usuario
- El bloque Response devuelve el perfil formateado
Procesamiento de pagos
Escenario: Procesar pago a través de la API de Stripe
- El bloque de función valida los datos de pago
- El bloque de API crea la intención de pago a través de Stripe
- El bloque de condición gestiona el éxito/fallo del pago
- 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