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.

Champs utilisés dans l’action Envoyer une requête HTTP.
ChampDescription
Protocole HTTPLa méthode de requête HTTP à envoyer. L’action Envoyer une requête HTTP prend en charge les méthodes suivantes :
  • Get (Obtenir) : envoie une demande d'information depuis le serveur.
  • Delete (Supprimer) : supprime une ressource du serveur.
  • Head (En-tête) : récupère les en-têtes de réponse HTTP du serveur.
  • Options : récupère les options et les fonctionnalités prises en charge par le serveur.
  • Patch (Retoucher) : met partiellement à jour une ressource sur le serveur.
  • Put (Placer) : met à jour une ressource sur le serveur.
  • Post (Publier) - Crée ou remplace une ressource sur le serveur.
URLL’URL du serveur vers lequel la requête HTTP est envoyée.
En-têtesLa clé et la paire de valeur pour la requête HTTP. Il est possible de saisie de plusieurs paires clé-valeur.
messageLe 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 :
  • Réessayer - Réessayez pendant 24 heures maximum jusqu’à ce que vous receviez un code de réponse différent ou que le délai d’attente expire.
  • Échec - Échec de l’exécution du flux de travail.
  • Ignorer - Ignorez l’erreur et continuez l’exécution du flux de travail.
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 :
  • Réessayer - Réessayez pendant 24 heures maximum jusqu’à ce que vous receviez un code de réponse différent ou que le délai d’attente expire.
  • Échec - Échec de l’exécution du flux de travail.
  • Ignorer - Ignorez l’erreur et continuez l’exécution du flux de travail.

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.

Comment Flow traite les codes de réponse HTTP.
Code de réponse HTTPComment Flow traite le code de réponse
Succès 2XX ou 3XXFlow 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 :
  • Réessayer - Réessayez pendant 24 heures maximum jusqu’à ce que vous receviez un code de réponse différent ou que le délai d’attente expire.
  • Échec - Échec de l’exécution du flux de travail.
  • Ignorer - Ignorez l’erreur et continuez l’exécution du flux de travail.
Autre code de réponseSi 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 :

  1. 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.

  2. 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 de text/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.
  3. Activez le flux de travail.

  4. Testez-la en modifiant le statut d’un produit, par exemple de Brouillon à Actif.

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

  1. 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.
  2. 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 de application/json.
    • Dans la section Corps, saisissez l’exemple JSON pour revenir au flux de travail, par exemple : ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
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
}
}
  1. 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)
Vous ne trouvez pas les réponses que vous recherchez ? Nous sommes là pour vous aider.