Проверка JSON Schema

Локальная обработка
app.schema.view

Данные также можно передать через #data={"name":"Ada"} или #url=... После чтения параметры сразу удаляются из адресной строки.

Как пользоваться

По примеру JSON выводится JSON Schema. Удобно, когда сначала есть реальный ответ, а документация API или валидатор появляются позже. Обязательные поля и перечисления сверьте вручную: инструмент видит только «что есть в этом примере», а не «что обязательно по бизнесу».

Отталкиваясь от примера

Объекты, массивы, строки и числа получают соответствующий type. Вложенные объекты по возможности разворачиваются в properties.

Если массив пуст и нет образца элемента, тип items может быть неточным — добавьте реальный элемент и выведите схему снова.

Как черновик

Автовывод не знает, обязателено ли поле — required нужно править вам. Необязательные поля, enum и format (email, uri) тоже дополняются вручную.

После генерации отдайте схему ajv и подобным инструментам в CI — это надёжнее устных договорённостей.

Локальная генерация

Пример не загружается. Для продакшен-образцов всё равно лучше сначала замаскировать данные.

В выводе есть объявление $schema чтобы другие инструменты узнали версию.

Пример

Пример JSON
{
  "id": 1001,
  "name": "Ada",
  "active": true
}
Выведенная Schema (фрагмент)
{
  "type": "object",
  "properties": {
    "id": { "type": "number" },
    "name": { "type": "string" },
    "active": { "type": "boolean" }
  }
}
Можно ли проверить другой JSON?

Страница в основном генерирует Schema по примеру. Проверку выполняйте своим бэкендом или ajv в CI.

А вложенность и массивы?

Вывод идёт как можно глубже. Если массив пуст, тип элемента может быть неточным.

Когда выбрать страницу GraphQL?

Для REST / JSON-документации — Schema; для сервиса GraphQL — страница вывода типов.

Будет ли format: email?

В приоритете вывод типов. Форматы вроде email добавьте в Schema по бизнес-правилам.

Рекомендуемый процесс

  1. Подготовьте успешный ответ, где по возможности заполнены все поля.
  2. Сгенерируйте Schema и проверьте, разумны ли type и properties.
  3. Вручную добавьте required, enum, additionalProperties и другие ограничения.
  4. Подключите в Mock / CI для проверки следующих ответов и вместе с Diff делайте ревью версий.

Один пример не даёт полный контракт. Лучше сверить несколько образцов и затем ужесточить Schema.