Rest 节点红色HTTP输入验证json

Rest 节点红色HTTP输入验证json,rest,node-red,Rest,Node Red,这可能是一个愚蠢的问题,但我找不到解决方案,也没有搜索的运气 我的节点红色流由HTTP输入触发,因为我想创建REST Web服务。到目前为止,它运行良好,但我想知道如何验证某人发送给我的内容 正如我现在看到的,我可以传递任何类型的内容。没有验证内容是否与我想要作为输入的内容匹配 如果我将内容类型设置为application/json,它只接受json数据。这很好,但我还想确保,用户只能发布特定的json字符串 如果有人发送我无法继续的数据(不是我期望的json对象),我希望发送HTTP 400作

这可能是一个愚蠢的问题,但我找不到解决方案,也没有搜索的运气

我的节点红色流由HTTP输入触发,因为我想创建REST Web服务。到目前为止,它运行良好,但我想知道如何验证某人发送给我的内容

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

如果我将内容类型设置为application/json,它只接受json数据。这很好,但我还想确保,用户只能发布特定的json字符串

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

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

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

致意
Patrick

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


例如,-在封面下用作验证引擎。不幸的是,这个节点没有提供太多的帮助。本质上,它允许您提供模式,如果消息无法验证,它会记录一个错误,如果您愿意,可以使用
Catch
节点处理该错误。

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


例如,-在封面下用作验证引擎。不幸的是,这个节点没有提供太多的帮助。基本上,它允许您提供模式,如果消息无法验证,它会记录一个错误,如果需要,可以使用
Catch
节点来处理。

我发现了问题。太糟糕了

我只是忘了将HTTP头内容类型设置为application/json


如果将内容类型设置为正确,节点红色contrib json模式验证器就像一个符咒一样工作

我发现了问题。太糟糕了

我只是忘了将HTTP头内容类型设置为application/json


如果内容类型设置为corret,node red contrib json模式验证器就像一个符咒一样工作

Hi,感谢您的回答。我尝试了验证程序,但出现了一些错误。首先,我试图通过使用一个只包含一个字段的json字符串来保持简单。为了验证,我使用了这个json{“$schema”:“id”:“title”:“Test”,“description”:“First simple Test”,“type”:“object”,“properties”:{“testdata”:{“type”:“string”}}}}我总是收到这个错误消息“TypeError:这不是一个类型化数组”。有人知道怎么回事吗?嗨,我现在能够得到原始错误了。它告诉我schemaPath:“#/type”应该是object。这里是我试图发送的字符串{“testdata”:“Hello World”}嗨,谢谢你的回答。我尝试了验证程序,但出现了一些错误。首先,我试图通过使用一个只包含一个字段的json字符串来保持简单。为了验证,我使用了这个json{“$schema”:“id”:“title”:“Test”,“description”:“First simple Test”,“type”:“object”,“properties”:{“testdata”:{“type”:“string”}}}}我总是收到这个错误消息“TypeError:这不是一个类型化数组”。有人知道怎么回事吗?嗨,我现在能够得到原始错误了。它告诉我schemaPath:“#/type”应该是object。这里是我试图发送的字符串{“testdata”:“Hello World”}