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 如果内容类型设置正确
这可能是一个愚蠢的问题,但我无法找到解决方案,搜索也不走运。
我的 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 如果内容类型设置正确