Aller au contenu principal

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ètreTypeObligatoireDéfautDescription
AppApp❌—Application associée au nœud.
URLString✅—Endpoint HTTP à appeler. Supporte les variables Handlebars : https://api.example.com/users/{{userId}}. Peut inclure des paramètres de requête.
Méthode HTTPGET / 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êteJSON / GraphQL / Form URL Encoded / Form Data✅—Format du payload envoyé.
HeadersClé-valeur❌—En-têtes HTTP personnalisés (auth, content-type, etc.). Supportent les variables Handlebars.
BodyJSON❌—Corps de requête (souvent requis pour POST, PUT, PATCH). Supporte les variables Handlebars, validation JSON automatique.
AuthentificationMéthode d'authentification❌—Méthode d'authentification Ecosystem appliquée à la requête : Aucune, Basic Auth, OAuth 2, API Key ou Custom.
TimeoutNombre (secondes)❌30Délai maximal avant échec de la requête (minimum 1, maximum 300).
Gestion des erreursBooléen❌trueStopper l'exécution du flux en cas d'échec ; désactivé, le flux continue et l'erreur reste dans lastResponse.
Anonymiser la réponseBooléen❌—Anonymise la réponse.
Réessayer automatiquementBoolé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) et variables (valeurs injectées à l'exécution). Le plus souvent utilisé avec la méthode POST.
  • 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 :

  1. Sélectionnez le mode dans Mode de requête.
  2. Renseignez les paires clé / valeur dans l'éditeur dédié (les valeurs supportent Handlebars).
  3. 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_typeclient_credentials
client_id{{credentials.clientId}}

Exemple en Form Data (upload de fichier) :

CléTypeValeur
documentFichier{{data.fileContent}}
metadataTexte{{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 : true si 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 contexteContenu
$.data.idorderId"12345"
$.data.itemsorderItems[...]
$.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 statut 2xx ne 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 :

  1. Un déclencheur reçoit l'identifiant de commande (webhook ou nœud Déclencheur).
  2. 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.
  3. Ajoutez un extracteur $.data.id avec la variable de contexte orderId : le nœud copie la valeur reçue dans context.orderId.
  4. 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.

Voir aussi​