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.

Champs utilisés dans l’action Envoyer une requête HTTP.
ChampDescription
Méthode HTTPLa méthode de la requête HTTP à envoyer. L’ Envoyer une requête HTTP action prend en charge les méthodes suivantes :
  • Get : envoie une requête pour obtenir des informations auprès du serveur.
  • Delete : supprime une ressource du serveur.
  • Head : 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 : met à jour partiellement une ressource sur le serveur.
  • Put : met à jour une ressource sur le serveur.
  • Post : crée ou remplace une ressource sur le serveur.
URLL’URL du serveur auquel la requête HTTP est envoyée.
En-têtesLa paire clé-valeur de la requête HTTP. Vous pouvez saisir plusieurs paires clé-valeur.
CorpsLe 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 :
  • Réessayer : relance la requête pendant 24 heures au maximum, jusqu’à la réception d’un code de réponse différent ou l’expiration du délai.
  • Échouer : entraîne l’échec de l’exécution du flux de travail.
  • Ignorer : ignore l’erreur et poursuit l’exécution du flux de travail.
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 :
  • Réessayer : relance la requête pendant 24 heures au maximum, jusqu’à la réception d’un code de réponse différent ou l’expiration du délai.
  • Échouer : entraîne l’échec de l’exécution du flux de travail.
  • Ignorer : ignore l’erreur et poursuit 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. 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.

Manière dont Flow traite les codes de réponse HTTP.
Code de réponse HTTPManière dont Flow traite le code de réponse
Succès 2XX ou 3XXFlow 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 :
  • Réessayer : relance la requête pendant 24 heures au maximum, jusqu’à la réception d’un code de réponse différent ou l’expiration du délai.
  • Échouer : entraîne l’échec de l’exécution du flux de travail.
  • Ignorer : ignore l’erreur et poursuit 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 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 :

  1. 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.
  2. 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-Type comme Clé et text/plain comme 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.
  3. Activez le flux de travail.
  4. Testez-le 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 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 :

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

  2. 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-Type comme Clé et application/json comme Valeur.

    • Dans la section Corps, saisissez l’exemple de JSON à renvoyer au flux de travail, tel que :

      {
          "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 corps renvoyé par l’objet sendHTTPrequest, 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.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, 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
        }
      }
  4. 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}}
  5. Activez le flux de travail.

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

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