lunes, 18 de julio de 2016

Flujo de Entrada/Salida HTTP Node Red

Ahora realizaremos un flujo para responder a peticiones HTTP. Necesitas los siguientes nodos:
1. Input HTTP: Habilita al flujo para escuchar peticiones http
2. HTTP Response: Habilita al flujo para brindar una respuesta vía http
3. Function: Transforma el objeto msg con el código que ingreses (tienes que conocer JavaScript para generar el código de NodeRed)

Crea un flujo como se muestra a continuación:


Configura el nodo HTTP para recibir las peticiones vía HTTP:


Escribe el siguiente código en el nodo function:
msg.payload="Hola";
msg.headers={"Content-Type":"text/html"}
return msg;







¿Qué estamos haciendo aquí?
La primer línea, estamos sobreescribiendo el contenido de payload (msg.payload). Payload es muy importante en los flujos sobre todo en la salida ya que por lo general cuando conectas con la nube se toma la información de aquí, tomate un tiempo para jugar con los payload y aprende a manipularlos.

La segunda línea: msg.headers. Estamos indicando que el contenido de Payload es tipo html con esto el navegador podrá interpretar la salida adecuadamente.

La última línea: return msg. Estamos indicando que sale el objeto msg armado como lo necesitamos

El último nodo no necesita configuración, sólo transporta el objeto msg de salida al flujo. Prueba el flujo. Desde la url donde acceder node-red agrega lo siguiente: /test sí dejaste la ruta como en la imagen. En mi caso, la ruta del node-red de mí raspberry es:
http://192.168.100.8:1880/#
para acceder al ejemplo hice lo siguiente:
http://192.168.100.8:1880/test

Debes ver una pantalla similar a la siguiente:



Una de las grandes ventajas de NodeRed es que puedes compartir flujos hechos por otras personas. Estos se almacenan en formato JSON y es sólo texto. Te comparto, el código de este flujo para que lo puedas probas de inmediato:

[{"id":"84baa13.0011ce","type":"http in","z":"46b56b4.316c894","name":"/test","url":"/test","method":"get","swaggerDoc":"","x":149,"y":130.5,"wires":[["cc6f9871.e0a5"]]},{"id":"9e45d205.e88cc","type":"http response","z":"46b56b4.316c894","name":"","x":489.15997314453125,"y":131.8300018310547,"wires":[]},{"id":"cc6f9871.e0a5","type":"function","z":"46b56b4.316c894","name":"","func":"msg.payload=\"Hola\";\nmsg.headers={\"Content-Type\":\"text/html\"}\nreturn msg;\n","outputs":1,"noerr":0,"x":321.5,"y":131.75,"wires":[["9e45d205.e88cc"]]}]

Dentro de node red, crea un flujo nuevo y en el menú selecciona importar desde el clipboard y pegas el código anterior.

Listo!!!! Ya tienes un flulo de Node Red que realiza una salida al navegador

No hay comentarios:

Publicar un comentario