Ключові моменти
- 01Забезпечено Ajv, найширше використовуваним JavaScript валідатором JSON Schema — що проходить тут, проходить у Node.js, Fastify й більшості JS ланцюгів.
- 02Звітує про кожну помилку валідації відразу (режим allErrors), а не тільки першу відмову.
- 03Кожна помилка включає шлях JSON Pointer до поля, що не пройшло, для швидкої навігації.
- 04Обидва схема й дані запускаються повністю у вашому браузері — нічого не завантажується.
Чому перевіряти JSON проти схеми?
JSON Schema — стандартний спосіб описати форму JSON документа — необхідні поля, дозволені типи, обмеження значень, вкладені структури об'єктів. Перевірка проти схеми перед тим, як корисне навантаження досягне виробництва, ловить невідповідність типів, відсутні необхідні поля й порушення обмежень рано, коли вони дешевші для виправлення.
Найпоширеніші випадки використання — тестування тіл запитів API й відповідей, перевірка файлів конфігурації, перевірка прикладів об'єктів OpenAPI й перевірка експорту даних проти відомої структури. Валідатор Handytool використовує Ajv — de facto JavaScript бібліотеку JSON Schema, яка використовується всередину самого Node.js — тому результати тут збігаються з тим, що ваш бекенд буде бачити.
Як перевіряти JSON проти схеми
- 01
Вставте вашу JSON Schema
Вставте схему в ліву панель. Це може бути схема Draft 7 чи 2019-09 чи 2020-12 з типом, властивостями, необхідними, елементами, anyOf, allOf — будь-яким стандартним ключовим словом, яке підтримує Ajv.
- 02
Вставте ваші JSON дані
Вставте документ даних, який ви хочете перевірити, у праву панель. Це екземпляр — тіло запиту API, об'єкт конфігурації, запис експорту чи один приклад з вашої специфікації OpenAPI.
- 03
Клацніть Перевірити
Ajv запускає перевірку з allErrors: true, що означає, що він збирає кожну відмову замість зупинки на першій.
- 04
Переглядайте список помилок
Кожна помилка показує шлях JSON Pointer до значення, що не пройшло (наприклад /user/email), ключове слово, що не пройшло (type, required, minimum) й людиночитаємое повідомлення. Виправте кожного й переперевіріть.
Що розробники перевіряють за допомогою JSON Schema
- 01Тіла запиту REST API — підтвердьте, що корисне навантаження збігається з очікуваною формою кінцевої точки перед відправленням.
- 02Приклади об'єктів OpenAPI — перевіріть кожен приклад проти вбудованого компонента схеми.
- 03Файли конфігурації — переконайтеся, що необхідні ключі присутні й значення правильного типу.
- 04Записи конвеєру даних — помітьте структурний дрейф між виробниками й споживачами даних.
- 05Корисні навантаження відправлення форми — тестуйте, що перевірка фронтенду дзеркалює обмеження бекенд-схеми.
- 06Тіла webhook третьої сторони — підтвердьте, що задокументована схема збігається з фактичним корисним навантаженням.
Приватна перевірка, без сервера
Ajv запускається повністю у вашому браузері. Ні схема, ні дані не надсилаються жодному серверу — ви можете безпечно перевіряти схеми, які описують внутрішні структури даних, й об'єкти даних, які містять чутливі значення полів.
Валідатор підтримує чернетки JSON Schema 6, 7, 2019-09 й 2020-12. Найпоширеніша чернетка у дикій природі — Draft 7, яка охоплює всі щоденні ключові слова: type, properties, required, items, minimum, maximum, pattern, enum, anyOf, allOf, oneOf, not й $ref.
FAQ валідатора JSON Schema
Які чернетки JSON Schema підтримуються?
Ajv підтримує чернетки 6, 7, 2019-09 й 2020-12. Draft 7 найпоширеніша в існуючих кодовбазах й охоплює всі стандартні ключові слова.
Чому моя $ref схема не розв'язується?
Зовнішні URLs $ref не відбираються в цьому інструменті тільки для браузера. Вбудуйте всі посилані схеми за допомогою $defs й локальних JSON pointer як #/$defs/MyType.
Чи моя схема чи дані завантажуються на якийсь сервер?
Ні. Ajv запускається повністю у вашому браузері — обидва схема й дані залишаються на вашому пристрої.
Чи можу я використовувати це для перевірки OpenAPI 3 специфікації?
Ви можете перевіряти окремі компоненти схеми й приклади об'єктів. Перевірка всього документа OpenAPI вимагає спеціалізованого валідатора OpenAPI, який розуміє мета-схему специфікації.
Чому я бачу кілька помилок замість тільки першої?
Валідатор налаштований з allErrors: true, що робить Ajv збирати кожну відмову замість зупинки на першій. Це навмисне — ви можете виправити всі проблеми в одному проході замість того, щоб робити повторні спроби перевірки.