Skip to Content

Nodos HTTP Request: Consumo de APIs REST

RUTA E · Agentes y Automatización · Lección 4 de 16

El nodo HTTP Request es fundamental para interactuar con servicios externos, permitiendo consumir APIs REST. Esta lección cubre la configuración de solicitudes GET y POST, el manejo de cabeceras y parámetros, y la extracción de datos de las respuestas, sentando las bases para integraciones complejas.

Nodos HTTP Request: Consumo de APIs REST

Fundamentos del nodo HTTP Request

El nodo HTTP Request permite a un workflow de n8n actuar como cliente HTTP, enviando solicitudes a servidores externos y procesando sus respuestas. Es la herramienta principal para consumir cualquier API RESTful. Entender su configuración es crítico para integrar n8n con la mayoría de los sistemas empresariales.

Al añadir un nodo HTTP Request, las propiedades clave a configurar son:

  • URL: La dirección del endpoint de la API a la que se enviará la solicitud. Puede ser estática o dinámica, usando expresiones para construirla a partir de datos de nodos anteriores.
  • Method: El verbo HTTP de la solicitud (GET, POST, PUT, DELETE, PATCH, etc.). Se selecciona según la operación que la API espera realizar.
  • Headers: Cabeceras HTTP que la API pueda requerir para autenticación, tipo de contenido, o cualquier metadato adicional.
  • Query Parameters: Pares clave-valor añadidos a la URL después del signo de interrogación (?) para filtrar o especificar la solicitud.
  • Body: El contenido de la solicitud para métodos como POST o PUT, típicamente en formato JSON o FormData.

Solicitudes GET: Recuperación de datos

Las solicitudes GET se utilizan para recuperar datos de un recurso especificado por la URL. No deben tener un cuerpo de solicitud, ya que su propósito es solo leer información. Los parámetros se envían como Query Parameters.

Ejemplo de configuración para una solicitud GET:

  1. Añadir un nodo HTTP Request.
  2. En el campo URL, introducir https://api.ejemplo.com/productos.
  3. Seleccionar GET como Method.
  4. En la sección Query Parameters, añadir una fila con Name categoria y Value electronica. Esto resultará en una URL como https://api.ejemplo.com/productos?categoria=electronica.
  5. Ejecutar el workflow para ver la respuesta en la salida del nodo.
REGLA DEL OFICIO

Siempre verifica la documentación de la API para entender qué parámetros y cabeceras son obligatorios para una solicitud GET. Ignorar esto puede llevar a errores 400 (Bad Request) o 401 (Unauthorized) sin una causa obvia en la configuración inicial.

Solicitudes POST: Envío de datos

Las solicitudes POST se utilizan para enviar datos a un servidor para crear un nuevo recurso o realizar una acción. A diferencia de GET, los datos se envían en el cuerpo de la solicitud.

Ejemplo de configuración para una solicitud POST:

  1. Añadir un nodo HTTP Request.
  2. En el campo URL, introducir https://api.ejemplo.com/ordenes.
  3. Seleccionar POST como Method.
  4. En la sección Body Parameters, elegir Body Content Type como JSON.
  5. En el campo JSON/Raw Body, introducir el siguiente JSON. Puedes usar una expresión para tomar datos de un nodo anterior, por ejemplo, {{ JSON.stringify($node["Previous Node"].json) }}.
{
  "productoId": "XYZ789",
  "cantidad": 2,
  "cliente": "INT México"
}

Es común que las APIs POST requieran una cabecera Content-Type para indicar el formato del cuerpo. n8n suele añadirla automáticamente si seleccionas JSON como tipo de contenido. Si no, puedes añadirla manualmente en la sección Headers con Name Content-Type y Value application/json.

Interpretación de respuestas y extracción de datos

Después de ejecutar una solicitud HTTP, el nodo HTTP Request generará una salida que contiene la respuesta del servidor. Esta respuesta incluye el código de estado HTTP, las cabeceras de respuesta y el cuerpo de la respuesta.

La información más relevante suele estar en el cuerpo de la respuesta. n8n intenta parsear automáticamente las respuestas JSON, haciéndolas accesibles en el siguiente nodo como objetos JSON. Por ejemplo, si una API devuelve:

{
  "status": "success",
  "data": {
    "ordenId": "ORD12345",
    "fecha": "2023-10-27"
  }
}

Puedes acceder al ordenId en un nodo posterior usando una expresión como {{ $json.data.ordenId }}. Para respuestas que no son JSON (ej. XML, texto plano), puede ser necesario usar un nodo Code para parsear la salida manualmente.

Los códigos de estado HTTP son cruciales para el manejo de errores. Un código 200 OK o 201 Created indica éxito, mientras que códigos como 400 Bad Request, 401 Unauthorized, 404 Not Found o 500 Internal Server Error indican problemas. n8n permite configurar el manejo de errores para estos casos, lo cual se verá en lecciones posteriores.

Aplicación Práctica: Consumo de una API pública

Para el lunes, identifiquen una API REST pública sencilla (ej. una API de clima, de chistes aleatorios, o de información de países). Creen un workflow en n8n que use un nodo HTTP Request para:

  1. Realizar una solicitud GET para obtener datos de la API.
  2. Configurar al menos un Query Parameter si la API lo permite.
  3. Inspeccionar la respuesta en la salida del nodo HTTP Request.
  4. Añadir un nodo Set después del HTTP Request para extraer y mostrar al menos dos campos relevantes de la respuesta usando expresiones (ej. {{ $json.data.nombreCampo }}).

Este ejercicio consolidará la comprensión de cómo configurar solicitudes, enviar parámetros y procesar las respuestas básicas de una API. Es el primer paso para construir integraciones complejas.


Rating
0 0

There are no comments for now.

to be the first to leave a comment.