UiPath Documentation
maestro-automate
latest
false
Guide de l'utilisateur de Maestro Automate

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​

ChampRequisDefaultDescription
Importer ou exporterNon (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.
AuthentificationOui (Yes)Authentification manuelleComment 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.
MethodOui (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:// . 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êtesNon (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ê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 variables.
Type de contenuNon (No)application/jsonType 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.
CorpsNon (No)VideCorps 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'arborescenceNon (No)Sortie par défaut uniquementBranches 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)PT15MTemps 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)0Nombre 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:

ChampRequisDescription
ConnecteurOui (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.
MethodOui (Yes)Méthode HTTP pour la requête.
URL de baseNon (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èsNon (No)Le chemin du point de terminaison pour la requête d’API REST.
En-têtesNon (No)Paires clé-valeur, jusqu'à 20. Le connecteur ajoute automatiquement ses propres en-têtes Authorization, Accept et Content-Type .
Paramètres de requêteNon (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.

Remarque :

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 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 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 :

  • code
  • message
  • detail
  • category
  • status

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 corpsVous 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 interneVous 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 standardVous 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​

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

Connecter

Besoin d'aide ? Assistance(opens in new window)

Vous souhaitez apprendre ? UiPath Academy(opens in new window)

Vous avez des questions ? UiPath Forum(opens in new window)

Rester à jour