如何在 jschema 中检查一个 属性 多于另一个?
How to check that one property more than another in jschema?
'MyObj': {
'type': 'object',
'properties': {
'width': {
'type': 'integer',
'minimum': 1
},
'height': {
'type': 'integer',
'minimum': 1
},
'sheetWidth': {
'type': 'integer',
'minimum': 1,
},
'sheetHeight': {
'type': 'integer',
'minimum': 1,
}
},
'required': [
'width',
'height'
]
}
是否可以检查比'height'多于'sheetWidth'?
好像我必须使用自定义验证,但我不确定,最好用 json-schema 检查一下。
如有任何帮助,我将不胜感激。
你可以用提议的 $data reference that is supported in Ajv
{
"properties": {
"height": {
"type": "integer",
"minimum": { "$data": "1/sheetWidth" }
},
"sheetWidth": {
"type": "integer",
"minimum": 1,
}
}
}
由于您标记了这个问题 swagger
- Swagger/OpenAPI 规范使用 subset of JSON Schema Draft 4,它不支持那种验证。
您只能在 属性 描述中口头记录:
'height': {
'type': 'integer',
'minimum': 1
'description': 'Must be more than sheetWidth.'
},
'MyObj': {
'type': 'object',
'properties': {
'width': {
'type': 'integer',
'minimum': 1
},
'height': {
'type': 'integer',
'minimum': 1
},
'sheetWidth': {
'type': 'integer',
'minimum': 1,
},
'sheetHeight': {
'type': 'integer',
'minimum': 1,
}
},
'required': [
'width',
'height'
]
}
是否可以检查比'height'多于'sheetWidth'?
好像我必须使用自定义验证,但我不确定,最好用 json-schema 检查一下。
如有任何帮助,我将不胜感激。
你可以用提议的 $data reference that is supported in Ajv
{
"properties": {
"height": {
"type": "integer",
"minimum": { "$data": "1/sheetWidth" }
},
"sheetWidth": {
"type": "integer",
"minimum": 1,
}
}
}
由于您标记了这个问题 swagger
- Swagger/OpenAPI 规范使用 subset of JSON Schema Draft 4,它不支持那种验证。
您只能在 属性 描述中口头记录:
'height': {
'type': 'integer',
'minimum': 1
'description': 'Must be more than sheetWidth.'
},