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

我有一个自定义构建的 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 方法为具体的“用户”部分指定数据要求。

知道如何实现吗?


函数式编程
浏览 97回答 1
1回答

慕村225694

如果我使用它手动加载模式和数据,gojsonschema它会按预期工作。我怀疑由于您以某种复杂的方式加载模式,因此您放入的模式最终会与您期望的有所不同,但由于您的代码示例都是基于 HTTP 的,所以我自己无法真正测试它.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go