web-dev-qa-db-ja.com

Jsonスキーマ検証:スキーマで宣言されたフィールド以外のフィールドを許可しない

私が次のようなスキーマを持っていると仮定します

fname: string
lname: string
age: string

それらのどれも必要ありません。ユーザーは、上記の属性のいずれかを私に送信できますが、宣言されていないものは何も送信できません。 fnamelnameおよびageまたはすべてを渡すことができます。ただし、middle_nameなどのすべてのプロパティと追加のプロパティが渡された場合、メッセージは拒否されます。

このようなスキーマをどのように定義しますか?

36
Tuan Anh Tran

json-schema を作成して、オプションを使用できます。

additionalProperties = false

これにより、プロパティで定義された属性のみを許可できます。あなたの場合:

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