web-dev-qa-db-fra.com

Validation du schéma Json: n'autorisez pas les champs autres que ceux déclarés dans le schéma

Supposons que j'ai un schéma comme

fname: string
lname: string
age: string

Aucun d'eux n'est requis. L'utilisateur peut m'envoyer l'un de ces attributs ci-dessus mais rien d'autre qui n'est pas déclaré. Ils peuvent me transmettre fname, lname et age ou tous. Mais s'ils me passent tous et des biens supplémentaires comme middle_name le message doit être rejeté.

Comment définirais-je un schéma comme celui-ci?

36
Tuan Anh Tran

Vous pouvez créer un json-schema et utiliser l'option:

additionalProperties = false

De cette façon, vous n'autorisez que les attributs définis dans les propriétés. Dans ton cas:

{
    "properties": {
        "fname": {"type": "string"},
        "lname": {"type": "string"},
        "age": {"type": "string"}
    },
    "additionalProperties": false
}
72
jruizaranguren