YAML/JSON 必需属性不适用于对象属性

YAML/JSON required attribute is not working for object properties

我有一个 yml 文件,如下所示:

mysql:
  db_pswd: "abcd"
  db_name: "pqrs"     

我正在尝试使用来自 python 的 jsonschema 库验证此配置,用于以下架构:

mysql:
  type: object
  properties:
    db_pswd:
      type: string
    db_name:
      type: string
  required: ["db_pswd", "db_name"]

要求:["db_pswd"]*

出于测试目的,当我从配置文件中删除所需的 属性 时,验证未显示错误。

您定义的 JSON 模式(在 YAML 中)在根级别有一个键 mysql

您需要定义一个对象是必需的,属性为mysql。您的 "JSON instance"(或 yaml 实例/文件)中有两层属性。

为此,您需要如下所示的架构...

type: object
properties:
    mysql:
    type: object
    properties:
      db_pswd:
        type: string
      db_name:
        type: string
    required: 
      - "db_pswd"
      - "db_name"
required: 
  - "mysql"