Схемы и типы

сравнение JSON-схемПроверяйте изменение с обеих сторон

Вставьте старую и новую JSON Schema или загрузите пример; затем задайте направление от производителя к потребителю.

сравнение JSON-схем

Старая JSON Schema

Новая JSON Schema

Обе схемы обрабатываются в браузере. Данные не отправляются, URL ссылок не запрашиваются.

Параметры проверки

Всё готово к ручной проверке.

Различия

Сохранённые записи ещё соответствуют старому контракту, когда новый сервис уже готов читать их. Сравнение JSON-схем показывает сдвиг ограничений, а не только разницу строк.

Если старый потребитель получит новые данные, направление нужно поменять. Сравнение JSON-схем отделяет добавление необязательного поля от нового требования required.

Зачем нужно сравнение JSON-схем?

Одна правка может быть рискованной лишь в одном направлении.

Укажите поток данных

По умолчанию старые записи проверяются новым контрактом. Обратный режим показывает риск для потребителя, который ещё не обновился.

Два дерева схемы соединены противоположными стрелками; возле одной отмечен риск.

Не скрывайте неопределённость

Сравнение JSON-схем оставляет пути $ref и составных условий для ручной проверки, не объявляя их безопасными без анализа.

Подсвеченная ветка ссылки между двумя карточками схемы и отдельная метка проверки.

Сначала поток, затем путь

01

Выберите потребителя

Начальный режим — старые данные → новая схема. Обратный режим нужен, если старый клиент прочитает новые сообщения.

02

Читайте JSON Pointer

Имя обязательного поля видно под /required, изменение типа — в /properties. Фильтр риска сохраняет пункты ручной проверки.

03

Обновите отчёт перед выгрузкой

Правка схемы или направления делает старый результат недоступным для копирования. Повторите запуск сочетанием Ctrl/Cmd+Enter.

Что попадает в отчёт

Обязательность и типы

Изменения JSON Schema включают required, обязательные поля и множество допустимых типов. Новое обязательное поле может исключить старые записи.

Enum и пределы

Обратная совместимость зависит также от enum и ограничений длины, числа и количества. Одна перестановка значений enum не считается правкой.

Проверяемая история

Совместимость схем обсуждать проще, когда указаны JSON Pointer, старое и новое значение, а также уровень риска. Полный отчёт скачивается как JSON.

Где необходима ручная проверка

Не всеобщее доказательство
Сравнение JSON-схем оценивает только поддержанные правила. Оно не доказывает поведение всех экземпляров или прикладного кода.
Ссылки не разрешаются
$ref и oneOf перечисляются для проверки. Внешние URL не запрашиваются, локальные циклы ссылок не раскрываются.
Свойство не равно required
Запись в properties сама по себе не делает поле обязательным. Требование задаёт required; значение additionalProperties тоже может влиять на риск.

Вопросы про сравнение JSON-схем

Какие режимы сравнения поддерживает этот проверщик JSON Schema?

Есть структурное сравнение с тремя направлениями потока данных; текстового режима здесь нет.

Игнорирует ли нормализованный режим порядок ключей схемы?

Да. Перестановка ключей объекта и элементов required или enum не создаёт новую разницу, если состав не меняется.

Может ли это помочь со схемами, содержащими много $ref?

$ref указан как путь ручной проверки, но цель ссылки не разрешается и не загружается.

Что делает additionalProperties: false?

additionalProperties: false запрещает свойства, не охваченные properties и patternProperties в том же объекте схемы. Направление изменения влияет на риск.

Отправляется ли моя схема или данные куда-либо для валидации?

Нет. Оба текста остаются в браузере; предел — 500 тысяч символов на ввод и миллион суммарно.

Есть случай, который стоит проверить?

Запустите сравнение JSON-схем

Поставьте рядом две версии, выберите направление данных и сохраните отчёт. Сравнение JSON-схем помогает подготовить обсуждение релиза без ложной гарантии.