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.
Une fois que Flow a envoyé votre requête HTTP, le code de réponse HTTP sera envoyé sous 30 secondes au maximum. Si Flow n’a pas reçu de réponse au bout de 30 secondes, il ferme la connexion à votre application. Il renvoie la requête plus tard.
Champs
L’action Envoyer une requête HTTP contient les champs suivants.
Champ | Description |
---|---|
Protocole HTTP | La méthode de requête HTTP à envoyer. L’action Envoyer une requête HTTP prend en charge les méthodes suivantes :
|
URL | L’URL du serveur vers lequel la requête HTTP est envoyée. |
En-têtes | La clé et la paire de valeur pour la requête HTTP. Il est possible de saisie de plusieurs paires clé-valeur. |
message | Le contenu à envoyer au serveur. |
En cas d’erreur client (réponse 4XX) | Lors de la réception d’un code de réponse indiquant une erreur client, Flow :
|
En cas d’erreur du serveur (réponse 5XX ou 429) | Lors de la réception d’un code de réponse indiquant une erreur de serveur, Flow :
|
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. Vous pouvez également utiliser une action Exécuter le code pour analyser le body
de la réponse afin de l’utiliser dans les étapes de flux de travail consécutives comme dans l’exemple ci-dessous.
Si une action Envoyer une requête HTTP est utilisée plusieurs fois dans un flux de travail unique, un numéro est alors 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 comment Flow traite le Code de réponse HTTP après avoir reçu une réponse.
Code de réponse HTTP | Comment Flow traite le code de réponse |
---|---|
Succès 2XX ou 3XX | Flow marque la requête HTTP comme une réussite et effectue des actions ultérieures dans le flux de travail. |
Erreurs 4XX, 5XX et 429 | Selon la façon dont l’action est configurée, Flow :
| Autre code de réponse | Si la réponse renvoie un code non décrit dans ce tableau ou si elle expire lors du nouvel essai des actions, Flow marque alors la requête HTTP comme ayant échoué, fait échouer l’exécution du flux de travail et n’effectue pas les actions consécutives du flux de travail. |
Secrets
Les secrets sont utilisés pour stocker en toute sécurité des informations sensibles pour les 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. Faites référence au 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 d’en-tête ou Corps. Les valeurs des secrets ne sont jamais visibles dans l’interface Flow et sont supprimées des journaux d’exécution du 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 des requêtes HTTP et stocke les données de ces requêtes à des fins de test, comme Requête Catcher. Pensez à 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 mis à jour du statut du produit, qui vous permet de tester ce flux de travail en changeant le statut d’un produit.
Ajoutez une action Envoyer une requête HTTP à votre flux de travail et connectez-la au déclencheur. Ouvrez alors le panneau de configuration en cliquant sur l’étape Envoyer une requête HTTP.
- Dans le champ Protocole HTTP, saisissez
POST
. - Dans le champ URL, indiquez l’URL à tester, par exemple
https://yourFlowTest.requestcatcher.com/test
. - Dans la section En-têtes, saisissez un en-tête avec une clé de
Content-Type
et une valeur detext/plain
. - 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 Protocole HTTP, saisissez
Activez le flux de travail.
Testez-la 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 le code d’exécution 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 body
de la réponse HTTP à utiliser dans les étapes de flux de travail consécutives.
Avant de commencer, choisissez un service web qui reçoit des requêtes HTTP et renvoie des données, comme Postman Echo. Pensez à 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 mis à jour du statut du produit, qui vous permet de tester ce flux de travail en changeant le statut d’un produit.
- Ajoutez une action Envoyer une requête HTTP à votre flux de travail et connectez-la au déclencheur. Ouvrez alors le panneau de configuration en cliquant sur l’étape Envoyer une requête HTTP.
- Dans le champ Protocole HTTP, saisissez
POST
. - Dans le champ URL, indiquez l’URL à tester, par exemple
https://postman-echo.com/post
. - Dans la section En-têtes, saisissez un en-tête avec une clé de
Content-Type
et une valeur deapplication/json
. - Dans la section Corps, saisissez l’exemple JSON pour revenir au flux de travail, par exemple : ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
- Dans le champ Protocole HTTP, saisissez
3. 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 `body` renvoyé par l’objet `sendHTTPrequest`, tel que : ```
query{
sendHttpRequest {
body
}
}
- Dans le champ **Définir les sorties**, défini 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.parse` et assurez-vous que les données que vous renvoyez correspondent à la forme et aux types définis dans le schéma de sortie tels 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 Sortie de journal à votre flux de travail et connectez-la à l’action Exécuter le code. Ouvrez alors 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}}
5. Activez le flux de travail.
6. Testez-la en modifiant le statut d’un produit, par exemple de **Brouillon** à **Actif**.
7. Observez l’exécution résultante à partir de la page **[Flow/Exécutions récentes](https://admin.shopify.com/apps/flow/activity)** et notez que les valeurs de l’étape **Sortie du journal** correspondent aux valeurs renvoyées par la sortie **Envoyer la requête HTTP**.
## Modèles {#templates}
### Informer votre fournisseur de services de traitement des commandes des prochaines commandes
Envoyez une requête HTTP à votre fournisseur de services de traitement des commandes quand des commandes sont balisées « Entrepôt » dans Order Tagger. [Afficher le modèle](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)
### Envoyer de nouvelles commandes à Airtable
Envoyez des commandes à Airtable lorsqu’une commande est créée. [Voir le modèle](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)
### Envoyer tous les produits existants et nouveaux à Airtable
Toutes les 10 minutes, recherchez les produits qui n’ont pas été envoyés à Airtable (par balise) et envoyez-les à Airtable. [Voir le modèle](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)
### Mettre à jour les produits dans des lots à partir des données des produits stockées dans Airtable
Mettez à jour les produits dans des lots à partir des données des produits qui sont stockées dans Airtable. [Voir le modèle](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)
### Notifier les clients de l’expiration des cartes-cadeaux avec SendGrid
Chaque jour, obtenez la liste des cartes-cadeaux qui expirent dans 7 jours et envoyez des e-mails aux clients avec SendGrid. [Voir le modèle](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)
### Envoyer un e-mail avec SendGrid lorsque les clients passent 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](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)