Gymterview
junior

Что такое 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.