Проверка Json Schema: не разрешать поля, отличные от объявленных в схеме

Предположим, что у меня есть схема, подобная

fname: string
lname: string
age: string

Ни один из них не требуется. Пользователь может отправить мне любой из этих атрибутов выше, но любой другой, который не объявлен. Они могут передать мне fname, lname и age или все. Но если они передадут мне все и дополнительные свойства, такие как middle_name сообщение должно быть отклонено.

Как я могу определить такую схему?

Ответ 1

Вы можете создать json-схему и использовать эту опцию:

additionalProperties = false

Таким образом вы разрешаете только атрибуты, определенные в свойствах. В твоем случае:

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