Выбор ответа Senior JSON и JSON Schema обновлено
Ключевое слово format
Вопрос
В схеме стоит {"type": "string", "format": "email"}. Валидатор по умолчанию пропустил значение "не email". Почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В 2020-12 format по умолчанию лишь аннотация, проверку включают в валидаторе. В draft 2020-12 format относится к словарю format-annotation: валидаторы не обязаны его проверять.
Варианты ответа
- В 2020-12
formatпо умолчанию лишь аннотация, проверку включают в валидатореправильный ответ - Валидатор сломан:
formatпроверяется стандартом так же строго, какtype - Формат
emailне входит в стандарт, валидатор его просто не знает formatпроверяется, только если рядом заданpatternс регулярным выражением
Разбор
В draft 2020-12 format относится к словарю format-annotation: валидаторы не обязаны его проверять. Многие библиотеки включают проверку отдельной опцией или плагином (например ajv-formats в ajv). Формат email в стандарте есть. Вывод для автотестов: убедиться, что проверка форматов действительно включена, иначе тест зелёный впустую.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.