Envoi de requêtes HTTP dans vos flux de travail

Créez des flux de travail qui envoient des demandes HTTP à des serveurs web externes, des points de terminaison d'API et des URL. Par exemple, il est possible de concevoir un flux de travail qui envoie un message à un service de messagerie ou qui crée un élément dans une application de gestion de projet.

Votre requête HTTP peut prendre en charge les méthodes HTTP 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.

Codes de réponse

Une fois que Flow a envoyé votre demande HTTP, 30 secondes au maximum s'écoulent avant que votre application réponde avec un code de statut HTTP. Si, après 30 secondes, Flow n'a pas reçu de réponse de votre application, la connexion à votre application est fermée et la demande est renvoyée.

Lorsque Flow reçoit une réponse, les codes sont traités comme suit :

Comment Flow traite les codes de statut.
Codes de statut Comment Flow les traite
200 Success (Succès) Flow estime que la demande POST (PUBLIER) a été traitée par votre application.
202 Success (Succès) Flow estime que la demande POST (PUBLIER) a été acceptée par votre application.
4XX Client errors (Erreurs clients)

Si votre application envoie un code de statut 429 (trop de demandes) sans en-tête Retry-After (Réessayer plus tard), Flow renvoie la demande HTTP (POST [PUBLIER]) à des intervalles d'augmentation pouvant aller jusqu'à 24 heures.

Si votre application envoie un code de statut 429 (trop de demandes) avec un en-tête Retry-After (Réessayer plus tard) [spécifiant un délai d'attente], Flow renvoie la demande HTTP (POST [PUBLIER]) après le délai d'attente (formaté en secondes).

Si votre application envoie un autre code 4XX, Flow estime qu'il y a eu un échec et ne renvoie pas la demande POST (PUBLIER).

5XX Server errors (Erreurs serveur) Flow renvoie la demande HTTP (POST [PUBLIER]) à intervalles croissants pendant 24 heures.
Autre code de statut Si votre application renvoie un code qui n'est pas décrit dans ce tableau, Shopify Plus estime alors qu'il y a eu un échec et ne renvoie pas la demande (POST [PUBLIER]).

Sécurité

Pour vous assurer que vos requêtes http sont les plus sûres possible, nous vous conseillons de respecter les bonnes pratiques suivantes :

  • Ajoutez | url_encode à toute variable liquid dans le chemin du champ de configuration de l’URL d’action HTTP. Le serveur web qui reçoit la demande doit prendre en charge les URL de décodage.

Par exemple, utilisez ce format pour les variables liquid dans le chemin du champ de configuration de l’URL d’action HTTP :

https://example.com/customer/create?first_name={{ customer.firstName | url_encode }}&last_name={{ customer.lastName | url_encode }}
  • Ajoutez | url_encode ou | json à chaque variable de modèle utilisée dans le corps du champ de configuration du corps d’action HTTP. Le serveur web qui reçoit la demande doit prendre en charge les URL de décodage ou le décodage JSON.

Par exemple, utilisez des | url_encode dans ce format lorsque vous avez un Content-Type application/x-www-form-urlencoded header :

{
  "first name": "{{customer.firstName | url_encode}}",
  "last name": "{{customer.lastName | url_encode}}"
}

Utilisez | json dans ce format lorsque vous avez un Content-Type application/json header :

{
  "first name": {{customer.firstName | json}},
  "last name": {{customer.lastName | json}}
}

Limites

Ne confondez pas cette action de requête HTTP avec les actions d'application créées avec les connecteurs Flow. Les deux envoient des requêtes HTTP, mais il existe des différences entre celles-ci. Par exemple, la demande HTTP envoyée avec cette action n'inclut pas de action_run_id dans son en-tête.

C'est un problème connu que cette action traite les codes de statut 202 comme si la demande avait été traitée.

Envoi d'une demande HTTP

  1. Dans votre flux de travail, cliquez sur Ajouter une action.
  2. Sélectionnez Send HTTP request (Envoyer une requête HTTP).
  3. Dans la section méthode http, remplissez les champs comme suit :

    1. Sélectionnez l'une des méthodes HTTP.
    2. Dans le champ URL, indiquez l'URL du serveur.
    3. Facultatif : si l’API vers laquelle vous transmettez des informations requiert que celles-ci soient ajoutées à l’URL, procédez comme suit : - Si l’API requiert des informations dans l’en-tête, spécifiez les paramètres dans le tableau des en-têtes pour les transmettre à l’URL. Si l’API permet l'ajout d'informations à l’en-tête ou au chemin de l'URL, utilisez l’en-tête. Cette option est plus sûre que d'ajouter des informations au chemin de l’URL.
    4. Si l’API requiert des informations dans le chemin de l’URL, ajoutez des variables de modèle au chemin de l’URL. Celui-ci se trouve après la troisième barre oblique. Par exemple, dans l’URL https://shopify.com/{{ order.id | url_encode }}, la partie correspondant au chemin d’accès est {{ order.id | url_encode }}.
  4. Dans le champ Headers (En-têtes), ajoutez toutes les paires clé-valeur. Vous pouvez également ajouter des variables de modèle à la clé ou à la valeur.

  5. Dans le champ Body (Corps), ajoutez le contenu que vous souhaitez envoyer au serveur. Lors de l'envoi de messages, il est souvent utile d'inclure des détails concernant le client, la commande ou le produit. Pour ce faire, vous devez utiliser des variables de modèle.

  6. Cliquez sur Save.

Liens connexes

Prêt(e) à commencer à vendre avec Shopify ?

Essayez gratuitement