Перейти к основному содержанию

Форматировщик и валидатор схем Apache Avro

Проверьте схему Apache Avro (JSON) на соответствие спецификации Avro — отсутствующие type/fields/name, неизвестные типы, недопустимые имена, дублирующиеся именованные типы и некорректные union получают понятное сообщение с точным путём до поля — а затем красиво отформатируйте её с отступом в 2 или 4 пробела. Всё работает прямо в вашем браузере.

Ввод

Вывод

Отформатированная схема
 
Это было полезно?

Руководства

Вставьте схему Apache Avro — JSON-документ, описывающий поля записи, используемый в топиках Kafka, schema registry и конвейерах сериализации данных — и этот инструмент проверит её на соответствие спецификации Avro, а затем красиво отформатирует с единообразным отступом. Всё выполняется в вашем браузере: ничего никуда не загружается.

В отличие от обычного валидатора JSON, он понимает собственные правила формы Avro. Схема может быть синтаксически безупречным JSON и при этом оставаться недействительной схемой Avro — record без массива fields, поле без type, символ enum, не соответствующий правилам именования Avro, или union, записанный как ["null", "null"] с одним и тем же ветвлением дважды. Этот инструмент ловит такие случаи и точно указывает, какое поле неверно и почему, вместо обобщённого сообщения «недействительная схема».

Что проверяется

  • Входные данные представляют собой корректный JSON, и каждый узел типа имеет распознаваемую форму: восемь примитивных типов (null, boolean, int, long, float, double, bytes, string) и шесть сложных типов (record, enum, array, map, union, fixed).
  • Типы record объявляют name и массив fields, и каждое поле имеет и name, и type; enum объявляет непустой массив symbols без дубликатов; array объявляет items; map объявляет values; fixed объявляет целое положительное size.
  • Именованные типы (record/enum/fixed) не пересекаются, а ссылка на именованный тип, определённый в другом месте того же документа — вперёд или назад — разрешается и помечается, если совпадений нет.
  • Union — это JSON-массивы, и каждый тип может встречаться в union не более одного раза — Avro не допускает двух веток string или двух веток record рядом друг с другом.

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

  1. Вставьте JSON вашей схемы Avro в поле ввода или нажмите Попробовать пример, чтобы загрузить образец записи.
  2. Выберите отступ в 2 или 4 пробела.
  3. Прочитайте строку результата: Действительная схема Avro с краткой сводкой записей, полей, enum, union и fixed-типов, или Недействительная схема Avro с точной проблемой и её путём (например, fields[2].type).
  4. Скопируйте или скачайте отформатированную схему — действительные схемы сохраняются как schema.avsc, что соответствует расширению, которое ожидают инструменты Avro.

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

Разрешает ли инструмент схемы из удалённого schema registry?

Нет. У Avro нет удалённых обращений в стиле $ref — он позволяет одной схеме ссылаться на другой именованный тип, определённый в том же документе (по имени, с необязательным namespace), и этот инструмент разрешает такие ссылки. Схему, которая существует только в отдельном файле или registry, нельзя проверить без её получения, а этот клиентский инструмент намеренно никогда этого не делает.

Что означает «union» в схеме Avro?

Union позволяет полю содержать один из нескольких типов и записывается как JSON-массив вместо одного типа — чаще всего ["null", "string"], чтобы сделать поле необязательным. Этот инструмент обеспечивает соблюдение правила, которое чаще всего сбивает с толку: union может содержать не более одной ветки каждого типа, поэтому ["string", "string"] или два встроенных определения record с одним именем отклоняются.

Является ли моя схема приватной?

Да. Разбор, проверка и форматирование выполняются на чистом JavaScript на вашем устройстве — во вкладке браузера или в среде выполнения API/Node, если вы вызываете инструмент программно. Ничего не передаётся, не записывается и не сохраняется.

avroschemavalidatorformatterjsonkafkadata-serializationdeveloper

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/apache-avro-schema-formatter-validator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "schemaInput": "{\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\"…",
    "indent": "2"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `apache-avro-schema-formatter-validator` tool (Apache Avro Schema Formatter & Validator) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.