Node-RED:Рецепты/Как обработать запрос с помощью JSON-данных

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

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Как обработать запрос с помощью JSON-данных[1]

Проблема

Вам нужно ответить на HTTP-запрос при помощи JSON-данных.

Решение

При помощи объекта «msg.headers» задайте заголовок «content-type» ответа на «application/json».

Пример

[{"id":"c8107088.37ef9","type":"http in","z":"3045204d.cfbae","name":"","url":"/hello-json","method":"get","swaggerDoc":"","x":120,"y":620,"wires":[["4e8237da.b17dc8"]]},{"id":"4e8237da.b17dc8","type":"template","z":"3045204d.cfbae","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{ \"Hello\": \"World\" }","x":290,"y":620,"wires":[["65401623.9abfe8"]]},{"id":"65401623.9abfe8","type":"change","z":"3045204d.cfbae","name":"Set Headers","rules":[{"t":"set","p":"headers","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"headers.content-type","pt":"msg","to":"application/json","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":620,"wires":[["f7d3e35a.082c2"]]},{"id":"f7d3e35a.082c2","type":"http response","z":"3045204d.cfbae","name":"","x":610,"y":620,"wires":[]}]


[~]$ curl -i http://localhost:1880/hello-json
HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=utf-8
Content-Length: 20
ETag: W/"14-jgfjeX8FTECC4q5nXp6n5g"
Date: Sat, 26 Nov 2016 23:07:50 GMT
Connection: keep-alive

{ "Hello": "World" }

Разбор

HTTP-заголовки, возвращаемые в ответе, можно задать при помощи свойства «msg.headers». Это должен быть объект с парами «ключ/значение» для каждого заголовка.

Чтобы в ответе пришли корректные JSON-данные, в заголовке «Content-Type» должно быть задано «application/json», чтобы получатель знал, что эти данные нужно обрабатывать как JSON-данные.

См.также

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