Что такое JSON схема?
JSON Schema — язык описания структуры JSON-документа, использующий сам JSON в качестве синтаксиса.
JSON Schema позволяет формально описать, какие поля должен содержать JSON-документ, какие типы данных допустимы, какие поля обязательны и какие ограничения действуют на значения. Это самоописательный язык: для обработки данных и описания их допустимости используются одни и те же инструменты сериализации/десериализации.
JSON Schema применяется для валидации входящих данных в API, генерации документации, автодополнения в IDE и кодогенерации. В Java-мире JSON Schema используется, например, для валидации запросов в REST API, а Spring поддерживает её через библиотеки вроде json-schema-validator. Это особенно полезно при контрактном подходе к разработке API (contract-first), когда схема определяется до реализации.
Пример JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"age": {
"type": "integer",
"minimum": 0
},
"email": {
"type": "string",
"format": "email"
}
},
"required": ["name", "email"]
}
На собеседовании: JSON Schema спрашивают редко, но если спросят — объясните, что это «контракт» для JSON-документа, описывающий допустимую структуру. Аналогия: JSON Schema для JSON — это как XSD для XML.