如何在Json Schema中强制执行限制

时间:2015-11-24 21:37:38

标签: jsonschema json-schema-validator jsonschema2pojo

我们使用JsonSchema来记录我们的Rest API,我需要确保每个字符串,数字,数组都限制了它们应用的最大大小,即

  • 所有字符串都有maxLength&模式集
  • 所有整数/数字都有最大值
  • 所有数组都有一个maxItems set

这将允许我们对从JsonSchema生成的POJO运行javax验证(我们使用jsonschema2pojo和JSR303注释)。

我宁愿不手动注视我传递的每个架构,所以想知道是否有任何自动化工具来检查这些项目的每个元素?如果不是,我可能会写一个: - )

非常感谢

1 个答案:

答案 0 :(得分:1)

您可以构建自己的元架构,就像对draft-04 meta-schema验证任何有效的JSON架构一样。

获取示例,您可以将以下约束添加到一般有效的JSON模式中:

{
    "oneOf" : [{
            "type" : "string",
            "required" : ["pattern", "maxLength"]
        }, {
            "type" : "array",
            "required" : ["maxItems"]
        }, {
            "type" : {
                "enum" : ["number", "integer"]
            },
            "required" : ["maximum"]
        }, {
            "type" : {
                "enum" : ["object", "boolean", "null"]
            }
        }

    ]
}

在您自己的元验证之后,您可以安全地生成java类。