【问题标题】:Set default rules for type using AJV使用 AJV 设置类型的默认规则
【发布时间】:2017-07-26 00:18:16
【问题描述】:

我试图弄清楚如何全局说所有数组的长度必须为 1,而不必使用 minItems: 1 在架构中的每个位置我指定一个数组。我正在考虑创建自定义类型,这是一种选择,但我觉得应该有更好的方法?

另一个全局限制是不允许任何空字符串。

感谢您的帮助!

【问题讨论】:

    标签: validation jsonschema ajv


    【解决方案1】:

    您永远无法更改关键字的行为(全局或其他方式)。最好的办法是创建一个包含您的特殊规则的文件。

    global.js

    {
      "definitions": {
        "non-empty-array": {
          "type": "array",
          "minItems": 1
        }
      }
    }
    

    然后,您可以在任何时候想要使用这些特殊规则时引用此文件。

    example.js

    {
      "type": "object",
      "properties": {
        "a": {
          "allOf": [{ "$ref": "/global.js#/definitions/non-empty-array" }],
          "items": { "type": "string" }
        },
        "b": {
          "allOf": [{ "$ref": "global.js#/definitions/non-empty-array" }],
          "items": { "type": "integer" }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2016-04-14
      相关资源
      最近更新 更多