Envoyer une requête HTTP
L’action Envoyer une requête HTTP connecte votre flux de travail à un serveur web ou à une URL et envoie des requêtes HTTP.
Après que Flow a envoyé votre requête HTTP, il attend un code de réponse HTTP pendant 30 secondes au maximum. Si Flow n’a pas reçu de réponse au bout de 30 secondes, il ferme la connexion à votre appli, puis réessaie d’envoyer la requête.
Champs
L’action Envoyer une requête HTTP contient les champs suivants.
| Champ | Description |
|---|---|
| Méthode HTTP | La méthode de la requête HTTP à envoyer. L’ Envoyer une requête HTTP action prend en charge les méthodes suivantes :
|
| URL | L’URL du serveur auquel la requête HTTP est envoyée. |
| En-têtes | La paire clé-valeur de la requête HTTP. Vous pouvez saisir plusieurs paires clé-valeur. |
| Corps | Le contenu à envoyer au serveur. |
| En cas d’erreur client (réponse 4XX) | En cas de réception d’un code de réponse indiquant une erreur client, Flow effectuera l’une des actions suivantes :
|
| En cas d’erreur de serveur (réponse 5XX ou 429) | En cas de réception d’un code de réponse indiquant une erreur de serveur, Flow effectuera l’une des actions suivantes :
|
Données renvoyées
Pour accéder aux données renvoyées dans les étapes qui suivent cette action, utilisez la variable nommée sendHttpRequest, qui inclut tous les détails de la réponse HTTP. Facultativement, utilisez une action Exécuter le code pour analyser le corps de la réponse afin de l’utiliser dans les étapes suivantes du flux de travail, comme dans l’exemple ci-dessous.
Si une action Envoyer une requête HTTP est utilisée plusieurs fois dans un même flux de travail, un chiffre est ajouté au nom de la variable. Par exemple, dans un flux de travail qui utilise l’action Envoyer une requête HTTP deux fois, la première variable pour les données renvoyées est sendHttpRequest et la deuxième variable est sendHttpRequest1. Ce nom ne peut pas être personnalisé.
Codes de réponse
Le tableau suivant décrit la manière dont Flow traite le code de réponse HTTP après avoir reçu une réponse.
| Code de réponse HTTP | Manière dont Flow traite le code de réponse |
|---|---|
| Succès 2XX ou 3XX | Flow considère que la requête HTTP a réussi et exécute les actions suivantes dans le flux de travail. |
| Erreurs 4XX, Erreurs 5XX et 429 | En fonction de la configuration de l’action, Flow effectuera l’une des actions suivantes :
|
| Autre code de réponse | Si la réponse renvoie un code non décrit dans ce tableau ou si le délai expire lors d’une nouvelle tentative, Flow marque la requête HTTP comme un échec, fait échouer l’exécution du flux de travail et n’effectue aucune des actions suivantes du flux de travail. |
Secrets
Les secrets sont utilisés pour stocker en toute sécurité des informations sensibles à utiliser dans l’action Envoyer une requête HTTP, telles que des jetons d’accès ou des mots de passe. Les secrets sont créés et gérés à partir de la page Flow > Paramètres. Un secret contient une ancre, une valeur et une description. Référencez le secret en tant que variable Liquid (telle que {{secrets.handle}}) ou à partir de l’option Ajouter un secret lors de la configuration des champs URL, Valeur de l’en-tête ou Corps. Les valeurs secrètes ne sont jamais visibles dans l’interface de Flow et sont masquées dans les journaux d’exécution des flux de travail.
Déclencheurs
L’action Envoyer une requête HTTP peut être utilisée dans n’importe quel flux de travail.
Exemples
Exemple 1 : envoyer une requête HTTP à un service externe
Dans cet exemple, utilisez Flow pour envoyer une requête HTTP à un service externe.
Avant de commencer, configurez un service web qui reçoit les requêtes HTTP et stocke les données de ces requêtes à des fins de test, comme Request Catcher. Faites preuve de prudence lors de l’envoi de données sensibles (comme des mots de passe ou des clés API) à un service tiers.
Étapes :
- Choisissez le déclencheur Statut du produit mis à jour, qui vous permet de tester ce flux de travail en modifiant le statut d’un produit.
- Ajoutez une Envoyer une requête HTTP action à votre flux de travail et connectez-la au déclencheur. Ouvrez ensuite le panneau de configuration en cliquant sur l’étape Envoyer une requête HTTP .
- Dans le champ Méthode HTTP, saisissez
POST. - Dans le champ URL, saisissez l’URL de test, par exemple
https://yourFlowTest.requestcatcher.com/test. - Dans la section En-têtes, saisissez un en-tête avec
Content-Typecomme Clé ettext/plaincomme Valeur. - Dans la section Corps, saisissez
{{product.title}}et{{product.status}}pour envoyer le titre et le statut mis à jour du produit à partir du déclencheur.
- Dans le champ Méthode HTTP, saisissez
- Activez le flux de travail.
- Testez-le en modifiant le statut d’un produit, par exemple de Brouillon à Actif.
- Observez les résultats dans le service de test externe, tel que
https://yourFlowTest.requestcatcher.com/dans cet exemple.
Exemple 2 : utiliser l’action Exécuter le code pour analyser une réponse HTTP
Dans cet exemple, utilisez Flow pour envoyer une requête HTTP à un service externe et une action Exécuter le code pour analyser le corps de la réponse HTTP afin de l’utiliser dans les étapes ultérieures du flux de travail.
Avant de commencer, choisissez un service web qui reçoit des requêtes HTTP et renvoie des données, tel que Postman Echo. N’oubliez pas de faire preuve de prudence lorsque vous envoyez des données sensibles (telles que des mots de passe ou des clés API) à un service tiers.
Étapes :
Choisissez le déclencheur Statut du produit mis à jour, qui vous permet de tester ce flux de travail en modifiant le statut d’un produit.
Ajoutez une action Envoyer une requête HTTP à votre flux de travail et connectez-la au déclencheur. Ouvrez ensuite le panneau de configuration en cliquant sur l’étape Envoyer une requête HTTP.
Dans le champ Méthode HTTP, saisissez
POST.Dans le champ URL, saisissez l’URL de test, par exemple
https://postman-echo.com/post.Dans la section En-têtes, saisissez un en-tête avec
Content-Typecomme Clé etapplication/jsoncomme Valeur.Dans la section Corps, saisissez l’exemple de JSON à renvoyer au flux de travail, tel que :
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
Ajoutez une action Exécuter le code à votre flux de travail et connectez-la à l’action Envoyer une requête HTTP. Ouvrez ensuite le panneau de configuration en cliquant sur l’étape Exécuter le code.
Dans le champ Définir les entrées, incluez le
corpsrenvoyé par l’objetsendHTTPrequest, tel que :query{ sendHttpRequest { body } }Dans le champ Définir les sorties, définies dans le schéma de sortie, tel que :
type Output { productTitle: String! productStatus: String! }Dans le champ Écrire le code, analysez la réponse à l’aide de la méthode
JSON.parseet assurez-vous que les données que vous renvoyez correspondent à la forme et aux types définis dans le schéma de sortie, tel que :export default function main(input) { const body = JSON.parse(input.sendHttpRequest.body); console.log("body is", body); return { productTitle: body.data.productTitle, productStatus: body.data.productStatus } }
Ajoutez une action Consigner la sortie à votre flux de travail et connectez-la à l’action Exécuter le code. Ouvrez ensuite le panneau de configuration en cliquant sur l’étape Exécuter le code.
Dans le champ Sortie, incluez les variables renvoyées par l’étape Exécuter le code, telles que :
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
Activez le flux de travail.
Testez-le en modifiant le statut d’un produit, par exemple de Brouillon à Actif.
Observez l’exécution qui en résulte à partir de la page Flow / Exécutions récentes et notez que les valeurs de l’étape Consigner la sortie correspondent aux valeurs renvoyées par la sortie Envoyer une requête HTTP.
Modèles
Aviser votre fournisseur de services de traitement des commandes des commandes à venir
Envoyez une requête HTTP à votre fournisseur de services de traitement des commandes lorsque des commandes sont balisées « Warehouse » dans Order Tagger. Afficher le modèle
Envoyer les nouvelles commandes à Airtable
Envoyez des commandes à Airtable lorsqu’une commande est créée. Afficher le modèle
Envoyer tous les produits existants et nouveaux à Airtable
Toutes les 10 minutes, trouvez les produits qui n’ont pas été envoyés à Airtable (par balise) et envoyez-les à Airtable. Afficher le modèle
Mettre à jour des produits par lots à partir de données sur les produits stockées dans Airtable
Mettez à jour des produits par lots à partir des données sur les produits qui sont stockées dans Airtable. Afficher le modèle
Aviser les clients de l’expiration de leurs cartes-cadeaux à l’aide de SendGrid
Chaque jour, récupérez toutes les cartes-cadeaux qui expirent dans 7 jours et envoyez des e-mails aux clients à l’aide de SendGrid. Afficher le modèle
Envoyer un e-mail avec SendGrid lorsqu’un client passe une commande pour un article personnalisé
Envoyez un e-mail transactionnel avec SendGrid lorsqu’un client passe une commande pour un article personnalisé. Afficher le modèle