Node-RED:Рецепты/Как создать конечную HTTP-точку

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


Как создать конечную HTTP-точку[1]

Проблема

Вам нужно создать конечную HTTP-точку, чтобы отвечать на GET-запросы при помощи статического веб-контента вроде HTML-страницы или таблицы стилей CSS.

Решение

Вам нужно будет воспользоваться нодой «HTTP in», чтобы прослушивать запросы, нодой «Template», чтобы добавить статический контент, и нодой «HTTP response», чтобы отвечать на запросы.

Пример

Nodered recipe create-an-http-endpoint.png
[{"id":"59ff2a1.fa600d4","type":"http in","z":"3045204d.cfbae","name":"","url":"/hello","method":"get","swaggerDoc":"","x":100,"y":80,"wires":[["54c1e70d.ab3e18"]]},{"id":"54c1e70d.ab3e18","type":"template","z":"3045204d.cfbae","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<html>\n    <head></head>\n    <body>\n        <h1>Hello World!</h1>\n    </body>\n</html>","x":250,"y":80,"wires":[["266c286f.d993d8"]]},{"id":"266c286f.d993d8","type":"http response","z":"3045204d.cfbae","name":"","x":390,"y":80,"wires":[]}]


[~]$ curl http://localhost:1880/hello
<html>
    <head></head>
    <body>
        <h1>Hello World!</h1>
    </body>
</html>

Разбор

При создании конечных HTTP-точек всегда стоит начинать с добавления в поток нод «HTTP in» и «HTTP response».

Любой поток, начинающийся с ноды «HTTP in», должен быть соединен с нодой «HTTP response», иначе у вас в итоге просто завершится таймаут запроса.

Получив сообщения, нода «HTTP response» сохраняет их в свойство «payload» и использует их в качестве тела ответа. Кроме того, ответ можно кастомизировать при помощи других свойств – мы расскажем о них в других руководствах.

С помощью ноды «Template» удобно встраивать тело веб-контента в поток. Возможно, вы захотите держать подобный статичный веб-контент вне потока.

См.также

Внешние ссылки