Используйте JSON Schema, чтобы документировать контракты API, валидировать JSON-пэйлоады и генерировать реалистичные mock-данные для тестов и демо.
Шаг 1 — Начните с реального примера
- Сначала вставьте реальный ответ API, payload запроса или конфиг JSON в форматтер.
- Держите один канонический JSON-пример на endpoint, чтобы избежать «дрейфа» схемы.
Шаг 2 — Сгенерируйте базовую схему
- Используйте Генератор схем, чтобы вывести типы, required-поля и вложенную структуру.
- Доработайте описания, форматы и ограничения (min/max, patterns) перед продакшеном.
Шаг 3 — Проверьте JSON по схеме
- Вставьте схему и реальные payloads в Валидатор схем.
- Исправляйте ошибки, обновляя либо JSON (баг), либо схему (изменение контракта).
Шаг 4 — Сгенерируйте mock-данные для тестов
- Откройте Генератор моков, чтобы создать реалистичные примеры, соответствующие вашей схеме.
- Используйте seed + batch size, чтобы тестовые данные были воспроизводимыми и масштабируемыми.
Шаг 5 — Делитесь и переиспользуйте
- Храните схемы в репозитории и ссылайтесь на них в документации API.
- Генерируйте типизированный код (TypeScript/Java/etc.) из стабильных JSON-примеров.
Важная заметка про возможности JSON Schema
- Некоторые схемы зависят от продвинутых ключевых слов вроде
$ref, anyOf, oneOf, и allOf. - Поддержка drafts и keywords отличается у разных валидаторов; для строгой проверки используйте полноценный JSON Schema validator в CI.
Пример: JSON → JSON Schema (упрощённо)
// JSON input
{
"id": 1,
"name": "Maeve Winters",
"active": true,
"tags": ["developer", "backend"]
}
// Generated schema (example)
{
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"active": { "type": "boolean" },
"tags": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["id", "name", "active", "tags"]
}