JSON Schema и генераторы типов
Когда ответу API нужен формальный контракт, а разрастающемуся проекту — типы вместо интерфейсов, написанных руками, эти инструменты превращают реальные примеры JSON в нечто структурированное. Сгенерируйте JSON Schema для документирования и проверки данных или сразу получите типизированный код на TypeScript, Go, Java, Python, Swift, Rust, C#, Dart или Scala, не описывая модели вручную самостоятельно.
Генераторы типов анализируют сразу несколько примеров массива, а не один объект, поэтому необязательные и непостоянные поля определяются, а не угадываются. Данные из JSON Schema создают воспроизводимые тестовые фикстуры по seed, а сравнение JSON-схем помечает критические изменения по направлению — поле, обязательное для поставщика данных, ломает не то же самое, что поле, обязательное для потребителя. Всё считается локально в браузере.
11 инструментов
Генерация типов и моделей
-
JSON в TypeScript
Напишите TypeScript-интерфейсы по образцам API-ответов с полями
-
JSON в Go
Сгенерируйте Go-структуры из примеров данных и API-ответов
-
JSON в Java
Создайте Java-классы по примерам API-ответов автоматически
-
JSON в Python
Получите dataclass или Pydantic-модель из примера JSON документа
-
JSON в Swift
Сгенерируйте Swift Codable-модели с опциональными полями
-
JSON в класс
Создайте классы для пяти программных языков из JSON примера
Создание и проверка JSON Schema
-
Генератор JSON Schema
Создайте JSON Schema по примерам ответов API автоматически
-
Валидатор JSON Schema
Проверьте JSON на соответствие схеме и найдите нарушения
-
сравнение JSON-схем
Сравните две JSON Schema и найдите изменения контракта API
-
Данные из JSON Schema
Создавайте воспроизводимые тестовые данные, соответствующие JSON Schema
-
конвертация XSD в JSON Schema
Преобразовать XSD в JSON Schema для валидации и типизации JSON
Вопросы об инструментах категории «Схемы и генерация типов»
Вставьте один или несколько примеров ответа в JSON в TypeScript — несколько примеров массива вместо одного помогают инструменту заметить поля, которые иногда отсутствуют, и пометить их необязательными, а не гадать. Так же работают JSON в Go, JSON в Java, JSON в Python и другие генераторы моделей на этой странице.
Интерфейс TypeScript проверяет форму данных только на этапе компиляции, внутри вашего кода. JSON Schema — рантайм-контракт, независимый от языка: по нему можно проверять реальные данные Валидатором JSON Schema, делиться им с другими сервисами или генерировать тестовые данные через Данные из JSON Schema.
Прогоните обе версии через сравнение JSON-схем. Оно показывает изменения по направлению: новое обязательное поле ломает тех, кто формирует данные по старой схеме, а поле, ставшее необязательным, в основном затрагивает строгих потребителей. Важно смотреть именно направление изменения, а не только сам diff.