J'utilise ajv pour valider certaines données JSON avant qu'elles ne soient écrites dans une base de données. Mes données de demande ressemble essentiellement comme celui-ci (comme exemple):ajv validate échoue avec le schéma correct "les données ne doivent PAS avoir de propriétés supplémentaires"
doc:
"name": "John",
"id": "123-456-789"
Cela est transmis au validateur ajv:
const validator: ajv.Ajv = this.getValidator();
validator.validate("Testschema.out", doc)
C'est ce que Testschema.out ressemble
{
"id": "Testschema.out",
"type": "object",
"allOf": [{
"$ref": "anotherId#/definitions/someDefinition"
},
{
"$ref": "Testschema"
}
]
}
TestSchema détient ceci:
{
"id": "Testschema",
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"name"
]
}
Alors que someDefinition détient ceci:
{
"id": "anotherId",
"type": "object",
"definitions": {
"someDefinition": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
}
}
Cependant, la validation échoue, et l'erreur que je reçois est "data should NOT have additional properties"
Plus précisément, quoi que ce soit dans le schéma « anotherId » pour une raison quelconque validation échoue. Si je devais ajouter la propriété "id" à Testschema, alors la validation passerait.