Форматировщик и валидатор схем 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рядом друг с другом.
Как использовать
- Вставьте JSON вашей схемы Avro в поле ввода или нажмите Попробовать пример, чтобы загрузить образец записи.
- Выберите отступ в 2 или 4 пробела.
- Прочитайте строку результата: Действительная схема Avro с краткой сводкой записей, полей, enum, union и fixed-типов, или Недействительная схема Avro с точной проблемой и её путём (например,
fields[2].type). - Скопируйте или скачайте отформатированную схему — действительные схемы сохраняются как
schema.avsc, что соответствует расширению, которое ожидают инструменты Avro.
Проверка и форматирование выполняются автоматически при вводе, так что вы можете исправлять по одному полю и наблюдать, как результат обновляется в реальном времени.
Разрешает ли инструмент схемы из удалённого schema registry?
Нет. У Avro нет удалённых обращений в стиле $ref — он позволяет одной схеме ссылаться на другой именованный тип, определённый в том же документе (по имени, с необязательным namespace), и этот инструмент разрешает такие ссылки. Схему, которая существует только в отдельном файле или registry, нельзя проверить без её получения, а этот клиентский инструмент намеренно никогда этого не делает.
Что означает «union» в схеме Avro?
Union позволяет полю содержать один из нескольких типов и записывается как JSON-массив вместо одного типа — чаще всего ["null", "string"], чтобы сделать поле необязательным. Этот инструмент обеспечивает соблюдение правила, которое чаще всего сбивает с толку: union может содержать не более одной ветки каждого типа, поэтому ["string", "string"] или два встроенных определения record с одним именем отклоняются.
Является ли моя схема приватной?
Да. Разбор, проверка и форматирование выполняются на чистом JavaScript на вашем устройстве — во вкладке браузера или в среде выполнения API/Node, если вы вызываете инструмент программно. Ничего не передаётся, не записывается и не сохраняется.
Use it from code
From 3 credits per callREST 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_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.