Salta el contingut

HTTP Request Node

El node HTTP Request permet fer peticions HTTP a qualsevol servei web, independentment de si n8n te un node natiu per a ell. És el node més versàtil de n8n.

Conceptes bàsics de HTTP

Abans de configurar el node, convé repassar els elements d'una petició HTTP:

Element Descripció Exemple
URL Adreca del recurs https://api.example.com/users
Mètode Acció a realitzar GET, POST, PUT, PATCH, DELETE
Headers Metadades de la petició Authorization: Bearer token
Query params Paràmetres a la URL ?page=1&límit=10
Body Cos de la petició (POST/PUT) {"nom": "Anna"}
Response Resposta del servidor Codi + cos JSON/HTML/text

Configuració del node

Mètode i URL

El primer que configures és el mètode HTTP i la URL:

Method: GET
URL: https://api.open-meteo.com/v1/forecast?latitude=41.7&longitude=2.8&current_weather=true

Pots usar expressions per construir la URL dinàmicament:

URL: https://api.example.com/users/{{ $json.user_id }}/orders

Autenticació

El node HTTP Request suporta multiples mètodes d'autenticació:

Authentication: Generic Credential Type
Generic Auth Type: API Key Auth
Header name: X-API-Key
Header value: la-teva-api-key
Authentication: Generic Credential Type
Generic Auth Type: Header Auth
Header name: Authorization
Header value: Bearer el-teu-token
Authentication: Generic Credential Type
Generic Auth Type: Basic Auth
User: el-teu-usuari
Password: la-teva-contrasenya
Authentication: Predefined Credential Type
Credential type: Selecciona el servei
(Segueix el flux OAuth2 de n8n)

Headers

Afegeix headers personalitzats si l'API els requereix:

Header Valor típic
Content-Type application/json
Accept application/json
X-API-Versión v2

Query Parameters

Afegeix paràmetres de consulta sense modificar la URL:

Nom Valor
page {{ $json.pagina }}
límit 50
sort created_at:desc

Body (per a POST/PUT/PATCH)

Per a peticions amb cos, selecciona el format i les dades:

{
  "nom": "{{ $json.nom }}",
  "email": "{{ $json.email }}",
  "data": "{{ $now.toISO() }}"
}
Nom Valor
username {{ $json.usuari }}
password {{ $json.contrasenya }}

Text pla o XML per a serveis que el requereixin.

Exemples practics

1. Consultar una API pública (OpenWeather)

flowchart LR
    A([Schedule\nTrigger]) --> B[HTTP Request\nOpenMeteo API] --> C[Code\nFormatar resposta] --> D[Slack\nNotificar temps]

Configuració del node HTTP Request:

Method: GET
URL: https://api.open-meteo.com/v1/forecast
Query Parameters:
  latitude: 41.7281
  longitude: 2.8459
  current_weather: true
  timezone: Europe/Madrid

2. Crear un registre en una API REST

Method: POST
URL: https://api.example.com/api/clients
Headers:
  Content-Type: application/json
  Authorization: Bearer {{ $env.API_TOKEN }}
Body (JSON):
{
  "nom": "{{ $json.nom }}",
  "email": "{{ $json.email }}",
  "actiu": true,
  "createdAt": "{{ $now.toISO() }}"
}

3. Gestionar la paginació

Moltes APIs retornen resultats paginats. Per processar totes les pàgines:

flowchart LR
    A([Trigger]) --> B[Set\npagina=1]
    B --> C[HTTP Request\nAPI amb pagina]
    C --> D{IF\nhay mes pagines?}
    D -->|Si| E[Code\npagina++]
    E --> C
    D -->|No| F[Merge\nTots els items]

4. Tractament de la resposta

Per defecte, el node HTTP Request retorna la resposta com un item. La propietat json conte el cos de la resposta:

// Acces a la resposta al node seguent
$json.data         // camp "data" de la resposta
$json.total        // camp "total"
$json.items[0].nom // primer element de la llista "items"

Opcions avancades

Timeout

Options → Timeout: 10000   (10 segons en milisegons)

Seguiment de redirects

Options → Follow Redirect: true/false

Ignorar errors SSL

Options → SSL Certificates → Ignore SSL Issues: true
(Nomes per a entorns de desenvolupament, MAI en produccio)

Paginació automàtica

n8n 1.x inclou suport de paginació automàtica. A la secció Pagination:

Pagination: Activate
Type: Update a parameter in each request
Parameter Type: Query Parameter
Parameter Name: page
Starting Value: 1
Increment by: 1
Total Pages: {{ $response.body.totalPages }}

APIs de tercers

Quan uses APIs externes, considera sempre: - Rate límits: quantes peticions pots fer per minut/hora - Costos: algunes APIs cobren per petició - Dades sensibles: no enviis dades personals a APIs de tercers sense el consentiment adequat

Miniactivitat ACN8N12

Crea un workflow que: 1. Consulti l'API pública https://jsonplaceholder.typicode.com/users (no requereix autenticació) 2. Filtra els usuaris que viuen a la ciutat de South Christy o Wisokyburgh 3. Per a cada usuari filtrat, consulta la seva llista de posts a /users/{id}/posts 4. Retorna un resum amb el nom de l'usuari i el nombre de posts que te