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¤t_weather=true
Pots usar expressions per construir la URL dinàmicament:
Autenticació
El node HTTP Request suporta multiples mètodes d'autenticació:
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:
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
Seguiment de redirects
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