- Démarrer
- Construire
- Ajouter un agent d'IA à un workflow
- Appeler une API externe
- Traiter les e-mails entrants
- Créer un workflow de notification Slack
- Ajouter une approbation humaine à un workflow
- Créer un workflow d’agent de chat
- Gérer les erreurs
- Principes de base du débogage
- L'humain dans la boucle: escalade ou étape humaine
- Évaluation de vos workflows
- Déployer et exécuter
- Exemples
- Référence (Reference)
Demande HTTP (HTTP Request)
Le nœud de requête HTTP envoie une requête à une adresse Web, avec sa configuration, son authentification et sa ramification de réponse.
Ce qu’il fait
Envoie une requête HTTP à une URL et rend la réponse disponible pour les nœuds suivants.
Options d'authentification
Un nœud de requête HTTP couvre les deux façons de s'authentifier, que vous choisissez dans le champ Authentification :
- Authentification manuelle: la méthode, l’URL, les en-têtes, le corps et les informations d’identification sont configurés en ligne. Il correspond à tout point de terminaison externe de transfert d'état représentatif où les informations d'identification sont gérées dans le nœud, par exemple un en-tête de clé API ou un jeton de porteur.
- Authentification basée sur le connecteur: la requête passe par une connexion, de sorte que la connexion gère l’authentification et les informations d’identification ne sont pas configurées dans le nœud. Il intègre la gestion centralisée des informations d’identification par rapport à un service connecté via Integration Service.
Référence de la configuration
| Champ | Requis | Default | Description |
|---|---|---|---|
| Importer ou exporter | Non (No) | Aucun (None) | Un menu au-dessus des champs. Import from cURL analyse une commande cURL et renseigne automatiquement la méthode, l'URL, les en-têtes et le corps. |
| Authentification | Oui (Yes) | Authentification manuelle | Comment la requête est authentifiée. L’authentification manuelle transmet les informations d’identification dans les en-têtes de la demande. L'authentification basée sur le connecteur envoie la requête via une connexion, comme décrit ci-dessous. |
| Method | Oui (Yes) | GET | Méthode HTTP pour la requête. Les valeurs prises en charge sont GET, POST, PUT, PATCH, et DELETE. |
| URL | Oui (Yes) | Aucun (None) | URL complète à laquelle envoyer la requête, y compris le schéma https:// . Dans un champ Valeur fixe , une valeur est insérée entre deux accolades, par exemple https://api.example.com/users/{{ $vars.userId }}. |
| En-têtes | Non (No) | Aucun (None) | Paires clé-valeur envoyées en tant qu'en-têtes de demande HTTP. Les noms et les valeurs d'en-tête prennent en charge les expressions variables. |
| Paramètres de requête | Non (No) | Aucun (None) | Paires clé-valeur ajoutées à l'URL sous forme de chaîne de requête. Les noms et les valeurs prennent en charge les expressions variables. |
| Type de contenu | Non (No) | application/json | Type Multipurpose Internet Mail Extensions (MIME) du corps de la demande. Les valeurs prises en charge sont application/json, application/xml, text/plain, et application/x-www-form-urlencoded. |
| Corps | Non (No) | Vide | Corps de la demande pour les requêtes POST, PUT, et PATCH. Entrez la valeur directement dans l'éditeur de code ou utilisez des expressions variables. |
| Onglet d'arborescence | Non (No) | Sortie par défaut uniquement | Branches de réponse qui acheminent le workflow en fonction des propriétés de réponse. Chaque branche a un nom et une expression de condition. |
| Délai d'attente (onglet Avancé ) | Non (No) | PT15M | Temps maximal pour attendre une réponse, dans le format de durée de l'International Organization for Standardization (ISO) 8601. |
| Nombre de tentatives (onglet Avancé ) | Non (No) | 0 | Nombre de fois pour relancer la demande si elle échoue. Les nouvelles tentatives utilisent la valeur de délai d'expiration comme intervalle de temporisation. |
Authentification basée sur le connecteur
Lorsque l’authentification est une authentification basée sur le connecteur, le panneau affiche ces champs au lieu des champs manuels:
| Champ | Requis | Description |
|---|---|---|
| Connecteur | Oui (Yes) | Le connecteur via lequel envoyer la requête, par exemple Slack. |
| Connexion (nommée d’après le connecteur, par exemple connexion Slack) | Oui (Yes) | La connexion à utiliser. |
| Method | Oui (Yes) | Méthode HTTP pour la requête. |
| URL de base | Non (No) | L'URL de base du connecteur, affichée sous la forme d'un espace réservé tel que https://slack.com/api. |
| Chemin d'accès | Non (No) | Le chemin du point de terminaison pour la requête d’API REST. |
| En-têtes | Non (No) | Paires clé-valeur, jusqu'à 20. Le connecteur ajoute automatiquement ses propres en-têtes Authorization, Accept et Content-Type . |
| Paramètres de requête | Non (No) | Paires clé-valeur, jusqu'à 20. |
L'éditeur suggère des noms d'en-tête courants tels que Authorization, Content-Type, Accept, X-Api-Key, et d'autres. Pour les paramètres de requête, l'ajout d'un paramètre avec un nom page et une valeur 2 envoie la demande à https://api.example.com/items?page=2.
Le nœud évalue les conditions de la branche dans l'ordre et suit la première correspondance. Si aucune branche ne correspond, le workflow suit la sortie par défaut .
Les expressions de condition de branchement utilisent la même syntaxe JavaScript que les nœuds Décision et Basculer :
$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code >= 400
$vars.httpRequest1.output.code >= 400
Chaque branche apparaît comme un gestionnaire de sortie distinct sur le côté droit du nœud de la zone de dessin, à côté du gestionnaire par défaut.
Valeurs de délai d'expiration courantes :
PT30S: 30 secondes.PT5M: 5 minutes.PT15M: 15 minutes.PT1H: 1 heure.
Identifiants
Vous pouvez authentifier les demandes de deux manières.
Authentification manuelle
Transmettez les identifiants directement dans les en-têtes de demande. Pour l'authentification de la clé d'API, ajoutez un en-tête avec un nom X-Api-Key et une valeur définis à votre clé. Pour l'authentification par jeton du porteur, ajoutez un en-tête Authorization avec une valeur telle que Bearer <your-token>.
Stockez les valeurs sensibles telles que les jetons et les clés d'API dans des variables secrètes plutôt que de les coder en dur.
Authentification basée sur le connecteur
Sélectionnez une connexion dans le panneau Propriétés. La connexion injecte automatiquement des informations d’identification dans la requête, du fait que vous n’avez pas besoin de gérer vous-même les en-têtes.
Une connexion correspond à la gestion centralisée des informations d’identification, à l’actualisation automatique des jetons et aux cas où plusieurs workflows partagent les mêmes informations d’identification d’API.
Create a connection describes how to create one.
Exemples
Exemple 1: requête GET de base
Récupérez une seule ressource à partir d'une API publique.
Le nœud est configuré avec la méthode définie sur GET et l'URL définie sur https://jsonplaceholder.typicode.com/posts/1. Tous les autres champs conservent leurs valeurs par défaut.
La réponse est disponible dans un nœud Script en aval :
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;
return {
title: body.title,
userId: body.userId,
status: status
};
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;
return {
title: body.title,
userId: body.userId,
status: status
};
L'objet de réponse est disponible à $vars.httpRequest1.output et contient trois champs :
$vars.httpRequest1.output.body: le corps de la réponse analysé.$vars.httpRequest1.output.code: le code de statut HTTP, par exemple200.$vars.httpRequest1.output.headers: un objet contenant les en-têtes de réponse.
Exemple 2: requête POST avec un corps JSON
Créez une nouvelle ressource en envoyant une charge utile JSON.
Le nœud est configuré avec la méthode définie sur POST, l'URL définie sur https://api.example.com/orders, un en-tête Authorization contenant la valeur Bearer {{ $vars.apiToken }} et le type de contenu défini sur application/json. Corps:
{
"product": "Widget",
"quantity": 5,
"customer_id": "cust_12345"
}
{
"product": "Widget",
"quantity": 5,
"customer_id": "cust_12345"
}
L'ID de la ressource créée est disponible dans un nœud en aval :
const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };
const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };
Si la requête échoue et que vous avez connecté un gestionnaire d'erreurs, les détails de l'erreur sont disponibles à $vars.httpRequest1.error :
// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;
return {
failed: true,
reason: errorMessage,
httpStatus: errorStatus
};
// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;
return {
failed: true,
reason: errorMessage,
httpStatus: errorStatus
};
L'objet d'erreur contient :
codemessagedetailcategorystatus
Exemple 3: acheminer les réponses avec des branches
Les branches de réponse permettent au workflow de suivre différents chemins en fonction de la réponse de l'API sans nœud de décision distinct.
Le nœud est configuré avec la méthode définie sur GET, l'URL définie sur https://api.example.com/users/{{ $vars.userId }} et deux branches dans l'onglet Ramification : Success avec la condition $vars.httpRequest1.output.code === 200 et Not Found avec la condition $vars.httpRequest1.output.code === 404.
Le nœud a désormais trois gestionnaires de sortie sur la zone de dessin :
- Success (Réussite): se connecte aux nœuds qui traitent les données utilisateur.
- Introuvable: se connecte aux nœuds qui gèrent l’utilisateur manquant.
- Par défaut: se connecte à un chemin de secours pour tout autre code de statut.
Chaque chemin en aval reçoit la réponse complète. Par exemple, sur la branche Succès :
const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };
const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };
Choix entre la requête HTTP et un nœud d'intégration
Utilisez le nœud de demande HTTP comme outil à usage général pour appeler n'importe quelle API. Utilisez un nœud d'intégration dédié lorsqu'il en existe un pour le service que vous appelez.
| Utiliser la demande HTTP lorsque... | Utiliser un nœud d'intégration lorsque... |
|---|---|
| L'API ne dispose d'aucun connecteur dédié dans le panneau Add node (Ajouter un nœud) | A connector exists for the service, such as Slack, Salesforce, or HubSpot CRM |
| Vous avez besoin d'un contrôle total sur les en-têtes, les paramètres de requête et le format du corps | Vous souhaitez des entrées et des sorties typées pré-construites sans configuration manuelle |
| Vous créez un prototype pour une nouvelle API ou un service interne | Vous souhaitez qu'une connexion puisse gérer la connexion et l'actualisation du jeton pour vous |
| L'API utilise un schéma d'authentification non standard | Vous souhaitez un workflow maintenable qui ne s’interrompra pas si l’API modifie son contrat |
En règle générale, il est préférable de rechercher d'abord dans le panneau Ajouter un nœud pour un connecteur, avec Requête HTTP comme solution de secours lorsqu'il n'existe rien pour le service cible.
Prochaines étapes
- Nœud de script: transformation et traitement des données de réponse HTTP.
- Nœud de décision: ramification sur les conditions, comme alternative aux branches de réponse.
- Variables et flux de données:
$vars, syntaxe de l'expression et portée des variables. - Community (Communauté): posez des questions et partagez des workflows avec d'autres développeurs sur le forum UiPath.
- Ce qu’il fait
- Options d'authentification
- Référence de la configuration
- Authentification basée sur le connecteur
- Identifiants
- Authentification manuelle
- Authentification basée sur le connecteur
- Exemples
- Exemple 1: requête GET de base
- Exemple 2: requête POST avec un corps JSON
- Exemple 3: acheminer les réponses avec des branches
- Choix entre la requête HTTP et un nœud d'intégration
- Prochaines étapes