为了账号安全,请及时绑定邮箱和手机立即绑定

自定义构建的 JSON 模式未正确验证

自定义构建的 JSON 模式未正确验证

Go
函数式编程 2023-03-21 17:24:48
我有一个自定义构建的 JSON 模式,它只有几个顶级。这里的问题是它没有将所有内容都验证到 100%。例如,它只检测到 4 个字段中的 2 个,并且必填字段根本不起作用,附加属性也不起作用,等等。我将这个库用于我的 json 模式。{    "users": {        "PUT": {          "definitions": {},          "$schema": "http://json-schema.org/draft-07/schema#",          "$id": "http://example.com/root.json",          "type": "object",          "title": "The Root Schema",          "required": [            "DisplayName",            "Username",            "Email",            "Password"          ],          "properties": {            "DisplayName": {              "$id": "#/properties/DisplayName",              "type": "string",              "title": "The Displayname Schema",              "default": "",              "examples": [                ""              ],              "minLength": 3,              "maxLength": 24,              "pattern": "^(.*)$"            },            "Username": {              "$id": "#/properties/Username",              "type": "string",              "title": "The Username Schema",              "default": "",              "examples": [                ""              ],              "minLength": 3,              "maxLength": 15,              "pattern": "^(.*)$"            },            "Email": {              "$id": "#/properties/Email",              "type": "string",              "title": "The Email Schema",              "default": "",              "examples": [                ""              ],              "minLength": 7,              "pattern": "^(.*)$",              "format": "email"            },            "Password": {              "$id": "#/properties/Password",              "type": "string",              "title": "The Password Schema",              "default": "",              "examples": [                ""              ],              "pattern": "^(.*)$"            }        },        "additionalProperties": false        }    }}我这样做的原因是我正在构建一个 REST API,如果api/auth/user收到 PUT 请求,我希望能够使用 PUT 方法为具体的“用户”部分指定数据要求。知道如何实现吗?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

如果我使用它手动加载模式和数据,gojsonschema它会按预期工作。我怀疑由于您以某种复杂的方式加载模式,因此您放入的模式最终会与您期望的有所不同,但由于您的代码示例都是基于 HTTP 的,所以我自己无法真正测试它.



查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信