UiPath Documentation
maestro
latest
false
Guide de l'utilisateur de Maestro
Important :
La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Demande HTTP (HTTP Request)

Configuration des nœuds de requête HTTP, authentification et schémas de 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 en aval.

Deux nœuds HTTP

Flow offre deux nœuds HTTP. Choisissez en fonction de la façon dont vous souhaitez gérer l'authentification:

  • Requête HTTP (core.action.http): configurez la méthode, l'URL, les en-têtes, le corps et l'authentification en ligne. Utilisez-le pour tout point de terminaison REST externe où vous gérez vous-même les informations d’identification, par exemple un en-tête de clé API ou un jeton de porteur. Il s'agit du nœud documenté sur cette page.
  • Requête HTTP gérée (core.action.http.v2): effectue la requête via une connexion gérée par Integration Service, de sorte que l’authentification est gérée par cette connexion plutôt que configurée en ligne. Utilisez cette option lorsque vous souhaitez une gestion centralisée des informations d’identification par rapport à un service auquel vous avez connecté via Integration Service.

Référence de la configuration

ChampRequisDefaultDescription
ModeOui (Yes)ManuelComment la requête est configurée. Sélectionnez Manuel pour définir vous-même la requête, ou Définition de l'API pour importer la configuration à partir d'une spécification OpenAPI ou Swagger.
Importer à partir d’une commande cURLNon (No)Aucun (None)Analyse une commande cURL et remplit automatiquement la méthode, l'URL, les en-têtes et le corps. Sélectionnez le bouton cURL dans la barre d'outils au-dessus des champs de configuration.
Méthode HTTPOui (Yes)GETMéthode HTTP pour la requête. Les valeurs prises en charge sont GET, POST, PUT, PATCH et DELETE.
URLOui (Yes)Aucun (None)URL complète à laquelle envoyer la requête, y compris le schéma https:// . Prend en charge les expressions de variables, par exemple https://api.example.com/users/$vars.userId.
En-têtesNon (No)Aucun (None)Paires clé-valeur envoyées sous forme d'en-têtes de requête HTTP. Les noms et les valeurs des en-têtes prennent en charge les expressions de variables.
Paramètres de requêteNon (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 de variables.
Type de contenuNon (No)application/jsonType Extensions Internet Mail multi-usage du corps de la demande. Les valeurs prises en charge sont application/json, application/xml, text/plain et application/x-www-form-urlencoded.
CorpsNon (No)VideCorps de la requête pour les requêtes POST, PUT et PATCH . Saisissez la valeur directement dans l'éditeur de code ou utilisez des expressions de variables.
branchesNon (No)Sortie par défaut uniquementBranches de réponse qui acheminent le processus en fonction des propriétés de réponse. Chaque branche a un nom et une expression de condition.
Délai d'attenteNon (No)PT15MDurée maximale d’attente d’une réponse, au format de date et d’heure de l’Organisation ISO 8601.
Nombre de nouvelles tentativesNon (No)0Nombre de fois où la requête a échoué. Les nouvelles tentatives utilisent la valeur du délai d'expiration comme intervalle d'interruption.

L'éditeur suggère des noms d'en-tête courants tels que Authorization, Content-Type, Accept, X-Api-Key, etc. Pour les paramètres de requête, l'ajout d'un paramètre avec le nom page et la valeur 2 envoie la requête à 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 processus suit la sortie par défaut .

Les expressions de condition de branche utilisent la même syntaxe JavaScript que les nœuds Décision et Commutateur:

$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode >= 400
$vars.httpRequest1.output.statusCode >= 400

Chaque branche apparaît sous la forme d'une gestion de sortie distincte sur le côté droit du nœud sur la zone de dessin, avec la gestion par défaut .

Valeurs courantes du délai d'expiration:

  • PT30S - 30 secondes
  • PT5M - 5 minutes
  • PT15M - 15 minutes
  • PT1H - 1 heure

Identifiants

Vous pouvez authentifier les requêtes de deux manières.

Authentification manuelle

Transmettez les informations d’identification directement dans les en-têtes de la demande. Pour l'authentification par clé API, ajoutez un en-tête avec le nom X-Api-Key et la valeur définie sur 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 API dans des variables secrètes plutôt que de les coder en dur.

Connecteur Integration Service

Sélectionnez une connexion Integration Service préconfigurée 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.

Utilisez un connecteur Integration Service lorsque vous souhaitez une gestion centralisée des informations d’identification, une actualisation automatique des jetons ou lorsque plusieurs processus partagent les mêmes informations d’identification d’API.

Remarque :

Les connecteurs Integration Service sont configurés dans le portail UiPath Automation Cloud. Reportez-vous à la documentation Integration Service pour obtenir les instructions de configuration.

Exemples

Exemple 1 - Requête GET de base

Récupérez une ressource unique à partir d'une API publique.

Le nœud est configuré avec la méthode HTTP 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 de script en aval:

const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;

return {
  title: body.title,
  userId: body.userId,
  status: status
};
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;

return {
  title: body.title,
  userId: body.userId,
  status: status
};

L'objet de réponse est disponible au niveau de $vars.httpRequest1.output et contient trois champs:

  • $vars.httpRequest1.output.body : le corps de la réponse analysé
  • $vars.httpRequest1.output.statusCode : le code de statut HTTP, par exemple 200
  • $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 HTTP 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 demande échoue et que vous avez connecté une gestion des erreurs, les détails de l'erreur sont disponibles au niveau de $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:

  • code
  • message
  • detail
  • category
  • status

Exemple 3 - Acheminer les réponses avec des branches

Les branches de réponse permettent au processus 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 HTTP définie sur GET, l'URL définie sur https://api.example.com/users/$vars.userId et deux branches dans la section Branches : Success avec la condition $vars.httpRequest1.output.statusCode === 200 et Not Found avec la condition $vars.httpRequest1.output.statusCode === 404.

Le nœud dispose désormais de trois gestions de sortie sur le canevas:

  • Réussite : se connecte aux nœuds qui traitent les données utilisateur
  • Introuvable : se connecte aux nœuds qui gèrent le cas d'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 Réussite:

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 };

Quand l’utiliser par rapport à un nœud d’intégration

Utilisez le nœud de requête HTTP comme outil 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 requête HTTP quand...Utilisez un nœud d'intégration lorsque...
L’API ne dispose d’aucun connecteur dédié dans la palette des nœudsUn connecteur existe pour le service, tel que Slack, Salesforce ou HubSpot
Vous avez besoin d’un contrôle total sur les en-têtes, les paramètres de requête et le format du corpsVous souhaitez des entrées et des sorties saisies prédéfinies sans configuration manuelle
Vous réalisez le prototypage par rapport à une nouvelle API ou à un nouveau service interneVous souhaitez une authentification automatique et une actualisation du jeton via Integration Service
L’API utilise un schéma d’authentification non standardVous souhaitez un processus maintenable qui ne s'interrompra pas si l'API modifie son contrat

Règle de base: recherchez d'abord dans la palette de nœuds un connecteur. Revenez sur Requête HTTP uniquement si rien n'existe pour votre service cible.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour