Форматировщик и валидатор схем Apache Avro
Проверьте схему Apache Avro (JSON) на соответствие спецификации Avro — отсутствующие type/fields/name, неизвестные типы, недопустимые имена, дублирующиеся именованные типы и некорректные union получают понятное сообщение с точным путём до поля — а затем красиво отформатируйте её с отступом в 2 или 4 пробела. Всё работает прямо в вашем браузере.
Ввод
Вывод
Другие способы использовать этот инструмент
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"
}'Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.
Спросите у ИИ-агента
Use the IOTools `apache-avro-schema-formatter-validator` tool (Apache Avro Schema Formatter & Validator) on this input:
YOUR_INPUT_HEREВставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.
Виджет для встраивания
<iframe
src="https://iotools.cloud/embed/apache-avro-schema-formatter-validator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="Форматировщик и валидатор схем Apache Avro — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>Вставьте это на свою страницу — бесплатно, без ключа, нужна лишь обратная ссылка.
| Стоимость вызова API/MCP | От 5 кредитов |
|---|---|
| Нужно больше кредитов? | Посмотреть тарифы |
Также доступно через
Руководства
Вставьте схему 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, если вы вызываете инструмент программно. Ничего не передаётся, не записывается и не сохраняется.