Выбор ответа Junior JSON и JSON Schema спрашивают часто обновлено
properties и required
Вопрос
Схема: {"type": "object", "properties": {"id": {"type": "integer"}, "email": {"type": "string"}}}. Пройдёт ли валидацию ответ {}?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Да: properties описывает поля, но обязательными их делает required. Частая ошибка в автотестах: схему пишут без required, и она пропускает пустой ответ.
Варианты ответа
- Да:
propertiesописывает поля, но обязательными их делаетrequiredправильный ответ - Нет: все поля из
propertiesобязательны, если у них указанtype - Нет: пустой объект не проходит схему с
"type": "object"и полями - Да, но лишь при указанном
$schema, иначе поля считаются обязательными
Разбор
Частая ошибка в автотестах: схему пишут без required, и она пропускает пустой ответ. Указанный type у поля проверяется, только когда поле есть. Обязательные поля перечисляют явно: "required": ["id", "email"]. $schema указывает версию стандарта и на это не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.