Nœud Requête HTTP(S)
Le nœud Requête HTTP(S) effectue des requêtes HTTP vers des APIs externes depuis un flux : appeler des APIs REST, récupérer des données depuis des services externes, envoyer des données à des services tiers et intégrer des systèmes.
Paramètres
| Paramètre | Type | Obligatoire | Défaut | Description |
|---|---|---|---|---|
| App | App | ❌ | — | Application associée au nœud. |
| URL | String | ✅ | — | Endpoint HTTP à appeler. Supporte les variables Handlebars : https://api.example.com/users/{{userId}}. Peut inclure des paramètres de requête. |
| Méthode HTTP | GET / POST / PUT / PATCH / DELETE | ✅ | — | Méthode de requête. GET : récupérer ; POST : créer ou envoyer ; PUT : mettre à jour ; PATCH : modifier partiellement ; DELETE : supprimer. |
| Mode de requête | JSON / GraphQL / Form URL Encoded / Form Data | ✅ | — | Format du payload envoyé. |
| Headers | Clé-valeur | ❌ | — | En-têtes HTTP personnalisés (auth, content-type, etc.). Supportent les variables Handlebars. |
| Body | JSON | ❌ | — | Corps de requête (souvent requis pour POST, PUT, PATCH). Supporte les variables Handlebars, validation JSON automatique. |
| Authentification | Méthode d'authentification | ❌ | — | Méthode d'authentification Ecosystem appliquée à la requête : Aucune, Basic Auth, OAuth 2, API Key ou Custom. |
| Timeout | Nombre (secondes) | ❌ | 30 | Délai maximal avant échec de la requête (minimum 1, maximum 300). |
| Gestion des erreurs | Booléen | ❌ | true | Stopper l'exécution du flux en cas d'échec ; désactivé, le flux continue et l'erreur reste dans lastResponse. |
| Anonymiser la réponse | Booléen | ❌ | — | Anonymise la réponse. |
| Réessayer automatiquement | Booléen | ❌ | — | Si la requête échoue, un retry relance automatiquement la requête ; si ce champ est désactivé, le flux tombe en erreur. |
Modes de requête
- JSON : envoi d'un corps JSON classique.
- GraphQL : envoi d'une requête GraphQL + un objet de variables dynamiques — le payload est composé de
query(structure, champs demandés) etvariables(valeurs injectées à l'exécution). Le plus souvent utilisé avec la méthodePOST. - Form URL Encoded (
application/x-www-form-urlencoded) : paires clé / valeur de formulaire configurées directement dans le nœud. - Form Data (
multipart/form-data) : formulaires, y compris des champs fichier.
Exemple de requête GraphQL :
query Post($postId: ID!) {
post(id: $postId) {
id
name
{{context.lang}}
}
}
{
"query": "query Post($postId: ID!) { post(id: $postId) { id name {{context.lang}} } }",
"variables": {
"postId": "{{data.postId}}"
}
}
Utilisez variables pour toutes les valeurs qui changent à chaque exécution (identifiant, filtres, langue, etc.) afin de garder une requête stable et maintenable.
Form URL Encoded et Form Data
Les modes Form URL Encoded et Form Data sont configurables directement dans le nœud :
- Sélectionnez le mode dans Mode de requête.
- Renseignez les paires clé / valeur dans l'éditeur dédié (les valeurs supportent Handlebars).
- Pour Form Data, vous pouvez ajouter des champs fichier en plus des champs texte.
L'en-tête Content-Type est positionné automatiquement (application/x-www-form-urlencoded ou multipart/form-data).
Exemple en Form URL Encoded :
| Clé | Valeur |
|---|---|
grant_type | client_credentials |
client_id | {{credentials.clientId}} |
Exemple en Form Data (upload de fichier) :
| Clé | Type | Valeur |
|---|---|---|
document | Fichier | {{data.fileContent}} |
metadata | Texte | {{data.fileName}} |
Pour un fichier déjà présent dans le contexte, la valeur du champ peut commencer par file:: suivi de la référence, par exemple file::document Nouveauté.
Corps de requête sur GET et DELETE
Vous pouvez inclure un corps de requête sur les méthodes GET et DELETE lorsque l'API cible l'exige. L'onglet par défaut pour ces méthodes est Query params ; basculez vers Body si nécessaire.
Import depuis une commande cURL
Vous pouvez coller une commande cURL dans le nœud pour préremplir URL, méthode, en-têtes et corps. Les formats application/x-www-form-urlencoded et multipart/form-data sont pris en charge.
Authentification
La requête peut utiliser une méthode d'authentification Ecosystem :
- Aucune : pas d'authentification.
- Basic Auth : username et mot de passe ; Ecosystem ajoute automatiquement l'en-tête
Authorization: Basic xxx. - OAuth 2 : Ecosystem obtient le token et le rafraîchit automatiquement à expiration.
- API Key : clé API dans un header ou un query parameter ; pour un token Bearer, définissez la valeur comme
Bearer {{accessToken}}. - Custom : code JavaScript qui construit l'authentification à appliquer.
Voir aussi : Utiliser les méthodes d'authentification dans les flux et Types de méthodes d'authentification.
Entrée
Le nœud reçoit les données du contexte du flux (déclencheur ou nœuds précédents) et les injecte dans la requête via les variables Handlebars :
{
"name": "{{data.name}}",
"email": "{{data.email}}"
}
Sortie
Le nœud HTTP injecte sa réponse dans context.lastResponse :
{
"lastResponse": {
"status": 201,
"success": true,
"headers": {
"content-type": "application/json",
"ratelimit-remaining": "49"
},
"data": {
"id": "12345",
"status": "created"
}
},
"orderId": "12345"
}
status: code de statut HTTP ;success:truesi la requête a abouti (statut 2xx) ;headers: en-têtes de la réponse ;data: corps de la réponse parsé (objet JSON, texte…).
Dans l'exemple ci-dessus, context.orderId a été injecté par un extracteur JSONPath $.data.id.
Les extracteurs
Un extracteur copie une valeur de la réponse vers une variable du contexte. Si la valeur est absente (chemin JSONPath introuvable), le nœud échoue — c'est le comportement recommandé pour ne pas propager de données incomplètes vers les nœuds suivants.
| Extracteur (JSONPath) | Variable de contexte | Contenu |
|---|---|---|
$.data.id | orderId | "12345" |
$.data.items | orderItems | [...] |
$.headers['ratelimit-remaining'] | rateLimitRemaining | "49" |
Utilisation dans les nœuds suivants
{{lastResponse.status}}: code de statut HTTP ;{{lastResponse.success}}: succès de la requête ;{{lastResponse.data}}: corps de la réponse ;{{lastResponse.headers}}: en-têtes de la réponse ;{{orderId}}: valeur copiée dans le contexte par un extracteur.
Erreurs
- Timeout — la requête dépasse le délai configuré. Augmentez le timeout ou vérifiez l'accessibilité et la performance de l'API.
- Erreur 401 (Unauthorized) — vérifiez la méthode d'authentification, l'expiration du token et le format utilisé.
- Erreur 404 (Not Found) — vérifiez l'URL, l'existence de l'endpoint et les paramètres.
- Échec HTTP — avec l'option Stopper l'exécution du flux en cas d'échec (défaut
true), le flux s'arrête. Pour gérer proprement l'échec, ajoutez un nœud On Error au flux. Un statut2xxne garantit pas un contenu métier valide : vérifiez{{lastResponse.success}}avec un nœud Condition.
Voir aussi : Bonnes pratiques — Gestion des erreurs.
Limites
- Timeout compris entre 1 et 300 secondes (défaut
30). - Augmentez le timeout pour les requêtes longues, réduisez-le pour échouer rapidement.
Exemple
Récupérer une commande et l'envoyer à un ERP :
- Un déclencheur reçoit l'identifiant de commande (webhook ou nœud Déclencheur).
- Le nœud Requête HTTP(S) appelle
GET https://api.example.com/orders/{{data.orderId}}— le champ URL supporte les variables, rien d'autre à configurer pour l'URL. - Ajoutez un extracteur
$.data.idavec la variable de contexteorderId: le nœud copie la valeur reçue danscontext.orderId. - Le nœud suivant (ex. un nœud Envoyer un e-mail ou un nœud Envoi AWS SQS) utilise
{{orderId}}et{{lastResponse.data.status}}dans ses champs.