# Requête HTTP - Nœud de workflow | Docs - nodulz

Source: https://nodulz.com/fr/docs/nodes/http

Language: fr

Appelle une API HTTP externe. URL, corps et auth acceptent des expressions.

## Utilisation et spécificités

> [!NOTE] La configuration change la sortie
>
> Configurez URL, méthode, en-têtes, corps et authentification selon l’API appelée. Les réponses hors 2xx échouent par défaut. Pour les inspecter volontairement, désactivez failOnHttpError et conservez returnStatus ; returnOnlyBody masque le statut. Adaptez les chemins utilisés en aval à la forme de sortie.

Type technique : `http`. Runtime : `nodulz`.

## Exemple guidé

Pour lire une ressource, choisissez **GET**, renseignez l’URL de votre API de test et gardez **Inclure le statut** activé et **Corps uniquement** désactivé. Si l’API renvoie le JSON `{ "id": "customer-42", "active": true }` avec un statut 200, la sortie contient :

```json
{
  "body": { "id": "customer-42", "active": true },
  "status": 200,
  "ok": true
}
```

Les en-têtes sont ajoutés si **Inclure les en-têtes** est activé. Dans un nœud suivant, lisez l’identifiant avec `{{ nodes.http1.body.id }}`, en adaptant `http1` au nom technique de votre nœud.

Pour envoyer un objet en JSON :

1. Choisissez **POST** et l’URL d’une ressource de test qui accepte cette méthode.
2. Ajoutez l’en-tête `Content-Type` avec la valeur `application/json`.
3. Dans le corps, utilisez `{{ JSON.stringify(input) }}` pour un payload manuel, ou `{{ JSON.stringify(input.body) }}` pour le corps reçu par un webhook.
4. Choisissez l’authentification attendue par l’API. Ne mettez pas un secret de production dans un exemple partagé.

Un corps n’est pas envoyé avec GET. Pour une URL contenant une valeur dynamique, l’encodage des expressions est activé par défaut : c’est utile pour une valeur de paramètre. Si l’expression représente une URL complète, vérifiez **Encoder les valeurs dans l’URL**, qui pourrait aussi encoder ses séparateurs.

Pour examiner un 404 dans une branche plutôt que faire échouer le nœud, désactivez **Échouer sur les erreurs HTTP**, conservez le statut et branchez un IF sur `nodes.http1.status`. Ajoutez un chemin d’échec ; avec cette option, un nœud terminé sans erreur peut contenir `ok: false`.

## Identifiants et prérequis

Aucun identifiant externe dédié n’est défini par ce nœud. Les sources distantes ou la cible d’exécution peuvent néanmoins nécessiter leurs propres accès.

Consultez le [guide des identifiants](/docs/credentials) si une source distante ou une cible d’exécution nécessite un accès.

## Paramètres

Les noms ci-dessous correspondent aux clés techniques. Les valeurs par défaut ne constituent pas une configuration prête à exécuter : renseignez les champs requis par votre opération. Les chemins contenant [] décrivent les éléments d’une liste ; certains champs dépendent du mode sélectionné.

| Paramètre | Type | Par défaut | Valeurs / limites |
| --- | --- | --- | --- |
| `method` | `enum` | `"GET"` | `GET`, `POST`, `PUT`, `PATCH`, `DELETE` |
| `url` | `string` | `""` | - |
| `encodeUrlValues` | `boolean` | `true` | - |
| `authentication` | `enum` | `"none"` | `none`, `bearer`, `basic` |
| `headers` | `record` | - | - |
| `body` | `string` | - | - |
| `token` | `string` | - | - |
| `username` | `string` | - | - |
| `password` | `string` | - | - |
| `returnOnlyBody` | `boolean` | `false` | - |
| `returnStatus` | `boolean` | `true` | - |
| `returnHeaders` | `boolean` | `true` | - |
| `failOnHttpError` | `boolean` | `true` | - |

## Aide de configuration

| Réglage | Rôle et conseils |
| --- | --- |
| `method`<br>Méthode HTTP | Verbe HTTP utilisé pour l'appel (GET, POST, PUT, PATCH, DELETE). |
| `url`<br>URL | Utilisez des doubles accolades pour les valeurs dynamiques, ex. {{ nodes.http1.body.id }} |
| `encodeUrlValues`<br>Encoder les valeurs dans l'URL | Activé : chaque {{ }} de l'URL est encodé (sûr pour un paramètre ?q=). Désactivé : la valeur est insérée telle quelle, pour construire un chemin ou une URL complète. |
| `authentication`<br>Authentification | Méthode d'authentification envoyée avec la requête. |
| `token`<br>Jeton Bearer | Utilisez des doubles accolades pour les valeurs dynamiques, ex. {{ nodes.http1.body.id }} |
| `username`<br>Nom d'utilisateur | Nom d'utilisateur pour l'authentification HTTP Basic. |
| `password`<br>Mot de passe | Mot de passe pour l'authentification HTTP Basic. |
| `failOnHttpError`<br>Échouer sur les erreurs HTTP | Les réponses hors 2xx font échouer le nœud et activent les retries et le traitement d’erreur. Désactivez pour examiner ces réponses dans une branche. |
| `returnOnlyBody`<br>Corps uniquement | Renvoie directement le corps de la réponse, sans statut ni en-têtes. |
| `returnStatus`<br>Inclure le statut | Ajoute le code HTTP et le flag ok à la sortie. |
| `returnHeaders`<br>Inclure les en-têtes | Ajoute les en-têtes de réponse à la sortie. |
| `headers`<br>En-têtes | En-têtes statiques (non templatisés). Authorization est géré via Authentification ci-dessus. |
| `body`<br>Corps de requête | Utilisez des doubles accolades pour les valeurs dynamiques, ex. {{ nodes.http1.body.id }} |

## Exemples

- URL : https://api.example.com/users/{{ input.userId }}
- Corps : {{ JSON.stringify(input.payload) }}
- Sortie : nodes.http1.status, nodes.http1.body

## Configuration initiale

Exemple de configuration initiale du catalogue, à adapter avant exécution. Les secrets doivent rester dans les identifiants.

```json
{
  "method": "GET",
  "url": "",
  "authentication": "none",
  "returnOnlyBody": false,
  "failOnHttpError": true,
  "returnStatus": true,
  "returnHeaders": true
}
```

## Vérification

Testez une ressource existante et une ressource absente dans votre API de test. Vérifiez le statut et les chemins utilisés en aval. Basculez **Corps uniquement** : le chemin de l’exemple devient `nodes.http1.id` et le statut disparaît. Avant de réessayer un POST après un délai dépassé, vérifiez si l’écriture a déjà eu lieu.

Voir aussi : [Expressions et données](/docs/expressions), [Exécutions](/docs/executions), [Catalogue des nœuds](/docs/nodes).

## Pour aller plus loin

- [Fonctionnalités - nodulz](https://nodulz.com/fr/product/overview)
- [Catalogue des nœuds - nodulz](https://nodulz.com/fr/product/catalog)
- [Serveur MCP - nodulz](https://nodulz.com/fr/product/mcp)
- [Tarifs - nodulz](https://nodulz.com/fr/pricing)
- [Cas d’usage et automatisations - nodulz](https://nodulz.com/fr/use-cases)
- [Choisissez ce que vos workflows peuvent faire. - nodulz](https://nodulz.com/fr/compare)
- [Documentation - nodulz](https://nodulz.com/fr/docs)
