跳到主要内容

接口操作-JSON参数处理

POST 请求发送 JSON 数据

接口路由访问规则参考 接口操作-创建接口

问题背景

POST 请求发送 JSON 数据

解决方案

使用 接口定义 节点监听 POST 请求,并将 Content-Type 设置为 application/json。通过 msg.payload 对象的属性来访问解析后的 JSON 数据。

示例

该流程包含三个节点:

  • 接口定义 节点: 配置为监听 POST 请求到 /public/hello-json。
  • 模板转化 节点: 使用 Mustache 语法生成 HTML 响应。它通过 {{ payload.name }} 访问 msg.payload 中 name 属性的值。
  • 接口响应 节点: 将 Template 节点生成的 HTML 作为响应发送回客户端。

http-in-post-json-data

示例JSON

[{"id":"67860691e046ff7a","type":"http in","z":"65b5dbf44a0ca401","name":"","url":"/hello-json","method":"post","upload":false,"swaggerDoc":"","advancedoptions":true,"apiAuth":"public","x":260,"y":2500,"wires":[["3bd288f1ce300383","61f1b905b2d22c1f"]]},{"id":"3bd288f1ce300383","type":"template","z":"65b5dbf44a0ca401","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"<html>\n    <head></head>\n    <body>\n        <h1>Hello {{ payload.name }}!</h1>\n    </body>\n</html>","x":510,"y":2500,"wires":[["0ec983933422b3cc"]]},{"id":"0ec983933422b3cc","type":"http response","z":"65b5dbf44a0ca401","name":"接口响应","statusCode":"","headers":{},"commonTemplate":false,"responseCode":0,"responseCodeType":"num","responseData":"payload","responseDataType":"msg","responseMsg":"success","responseMsgType":"str","x":780,"y":2500,"wires":[]},{"id":"61f1b905b2d22c1f","type":"debug","z":"65b5dbf44a0ca401","logName":"日志输出","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","logLevel":"info","dataType":"field","format":"handlebars","syntax":"mustache","template":"输出日志: payload 值为 {{payload}}","output":"str","x":510,"y":2600,"wires":[]}]

运行结果

http-in-post-json-data-result

接口定义 节点收到 Content-Type 头部设置为 application/json 的请求时,它会解析请求体中的 JSON 数据,并将数据作为 msg.payload 的属性提供。例如:

http-in-post-json-data-payload

{
"name": "Nick"
}