Comment utiliser la réponse d'une requête get http

On peut faire une scène d’envoi de requête HTTP. Ça fonctionne, mais comment connaître le retour et utiliser la réponse qui ne s’affiche que dans le cadre de l’essai, mais pas dans le tableau général ou le tableau des scènes ? Ça serait bien d’avoir une balise qui affiche la réponse et que l’on puisse utiliser pour d’autres actions sous conditions (si alors).

Salut @bob :waving_hand:

Bonne nouvelle : c’est déjà possible aujourd’hui, mais il y a une étape pas très intuitive qui explique que tu ne trouves pas la réponse ailleurs que dans l’aperçu :slightly_smiling_face:

1. Cliquer sur « Essayer » une première fois

Le bouton « Essayer » ne sert pas qu’à tester : c’est lui qui permet à Gladys d’analyser le JSON renvoyé par l’API et de mémoriser la liste des champs disponibles. Tant que tu n’as pas cliqué dessus au moins une fois, aucune variable n’est proposée dans les blocs suivants.

2. Utiliser la réponse dans les actions suivantes

Une fois l’essai fait, dans n’importe quelle action placée après ton bloc « Faire une requête HTTP », tape {{ dans un champ texte : tu verras apparaître les variables de ta requête, sous la forme data.mon_champ (pour les champs du JSON, y compris imbriqués comme data.results.temperature) et status (le code HTTP, ex. 200).

3. Pour afficher la réponse

  • Le plus simple : une action « Envoyer un message » avec la variable dedans, tu reçois la valeur sur Telegram / dans le chat Gladys.
  • Encore mieux si c’est une valeur numérique que tu veux voir dans ton dashboard : une action « Contrôler un appareil », en choisissant le mode « Calculée » au lieu de « Simple », pointée sur un appareil virtuel. Là tu as la valeur affichée en permanence sur ton tableau de bord, avec l’historique et les graphiques qui vont avec :wink:

4. Pour le « si… alors… »

C’est exactement le rôle des blocs « Condition sur variables » ou « Condition « Si… Alors… Sinon… » » : tu y sélectionnes la variable de ta requête HTTP, un opérateur (=, !=, >, >=, <, <=) et une valeur. Par exemple : si data.temperature > 25 alors allumer le ventilateur.

Deux limites à connaître :

  • L’analyse automatique des champs ne fonctionne que si l’API répond en JSON (Content-Type: application/json). Si l’API renvoie du texte brut ou du XML, aucune variable n’est proposée.
  • Si tu modifies l’URL ou que l’API renvoie de nouveaux champs, il faut re-cliquer sur « Essayer » pour rafraîchir la liste.

C’est pour quelle utilisation ? :slight_smile:

J’ajouterai qu’il faut taper les accolades ET un espace (donc {{ ) derrière sinon ça ne montrera jamais la liste des variables.