Cómo usar la respuesta de una solicitud GET HTTP

Se puede crear una escena para enviar una solicitud HTTP. Funciona, pero ¿cómo conocer la respuesta y utilizar los datos que solo se muestran en el marco de la prueba, pero no en la tabla general o en la tabla de escenas? Sería genial tener una etiqueta que muestre la respuesta y que podamos usar para otras acciones condicionales (si entonces).

Hola @bob :waving_hand:

Buenas noticias: ya es posible hoy, pero hay un paso poco intuitivo que explica por qué no encuentras la respuesta en ningún otro lugar que en la vista previa :slightly_smiling_face:

1. Hacer clic en « Probar » una primera vez

El botón « Probar » no solo sirve para probar: es el que permite a Gladys analizar el JSON devuelto por la API y memorizar la lista de campos disponibles. Mientras no hayas hecho clic en él al menos una vez, no se propone ninguna variable en los bloques siguientes.

2. Usar la respuesta en las acciones siguientes

Una vez hecho el intento, en cualquier acción colocada después de tu bloque « Hacer una solicitud HTTP », escribe {{ en un campo de texto: verás aparecer las variables de tu solicitud, en la forma data.mi_campo (para los campos del JSON, incluidos los anidados como data.results.temperature) y status (el código HTTP, ej. 200).

3. Para mostrar la respuesta

  • Lo más sencillo: una acción « Enviar un mensaje » con la variable dentro, recibes el valor en Telegram / en el chat de Gladys.
  • Mejor aún si es un valor numérico que quieres ver en tu panel: una acción « Controlar un dispositivo », eligiendo el modo « Calculada » en lugar de « Simple », apuntando a un dispositivo virtual. Allí tienes el valor mostrado permanentemente en tu tablero de control, con el historial y los gráficos correspondientes :wink:

4. Para el « si… entonces… »

Es exactamente el papel de los bloques « Condición sobre variables » o « Condición « Si… Entonces… Si no… » »: seleccionas la variable de tu solicitud HTTP, un operador (=, !=, >, >=, <, <=) y un valor. Por ejemplo: si data.temperature > 25 entonces encender el ventilador.

Dos limitaciones a conocer:

  • El análisis automático de los campos solo funciona si la API responde en JSON (Content-Type: application/json). Si la API devuelve texto sin formato o XML, no se propone ninguna variable.
  • Si modificas la URL o la API devuelve nuevos campos, debes volver a hacer clic en « Probar » para actualizar la lista.

¿Para qué uso es? :slight_smile:

Añadiré que hay que escribir las llaves y un espacio (por lo tanto {{ ) detrás, de lo contrario nunca se mostrará la lista de variables.

Continuación del tema Cómo usar la respuesta de una solicitud HTTP GET:

disculpa, veo bien la respuesta después de hacer clic en probar. si creo una nueva acción después de la acción de solicitud, por ejemplo, enviar un mensaje en el campo de texto mensaje, si escribo {{ seguido de un espacio, el campo se queda vacío. luego hablas de objeto virtual, pero tampoco tengo ninguna propuesta de ese tipo en las listas desplegables. gracias por tus respuestas

¿Puedes compartirnos la URL que llamas en la solicitud HTTP? ¿Cuál es la respuesta? ¿Es realmente un JSON?