Node-Red HTTP 输入验证 json

Node-Red HTTP Input verify json

这可能是一个愚蠢的问题,但我无法找到解决方案,搜索也不走运。

我的 Node-Red 流程由 HTTP 输入触发,因为我想创建一个 REST Web 服务。到目前为止一切正常,但我想知道如何验证别人发送给我的内容。

正如我现在看到的,我可以传递任何类型的内容。没有验证内容是否与我想要作为输入的内容匹配。

如果我将 content-type 设置为 application/json,它只接受 json 数据。这很好,但我也想确保,用户只能 post 特定的 json 字符串。

如果有人发送我无法继续的数据(不是我预期的 json 对象),我想发送 HTTP 400 作为响应。

我对 Node-Red 和 json 都很陌生。我更像是一个使用经典网络服务和 soap 的老派程序员。我缺少的是某种 WSDL(在使用 REST 时不确定它是否存在)和某种负载验证。

如果有人能给我指路就好了。

此致 帕特里克

有一些节点可用于对 JSON 个对象进行模式验证。

例如,node-red-contrib-json-schema-validator - which uses ajv 作为幕后验证引擎。不幸的是,这个节点并没有提供太多帮助。本质上,它允许您提供您的架构,如果消息无法验证,它会记录一个错误,如果您愿意,可以使用 Catch 节点处理该错误。

我发现了问题。太惨了。

我只是忘记将 HTTP Header content-type 设置为 application/json。

node-red-contrib-json-schema-validator 如果内容类型设置正确