Что такое JSON Schema?

«Что такое JSON Schema?» — вопрос из категории Форматы данных, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

JSON Schema — это стандарт (спецификация IETF) для описания структуры, валидации и документирования данных в формате JSON. Она определяет правила, которым должен соответствовать JSON-документ: типы данных, обязательные поля, диапазоны значений, форматы строк и вложенные объекты.

Зачем это нужно?

  • Валидация данных: Проверка входящих запросов API и исходящих ответов.
  • Документирование: Четкое описание формата данных для разработчиков.
  • Генерация: Автоматическая генерация тестовых данных, форм или кода.
  • IDE-подсказки: Улучшение автодополнения в редакторах кода.

Пример простой схемы (draft-07):

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer", "minimum": 0 }
  },
  "required": ["name"],
  "additionalProperties": false
}

Эта схема описывает объект, где:

  • name — обязательная строка.
  • age — необязательное целое число, не меньше 0.
  • Запрещены любые другие поля (additionalProperties: false).