Formatador e Validador de Esquema Apache Avro
Valide um esquema Apache Avro (JSON) em relação à especificação Avro — type/fields/name ausentes, tipos desconhecidos, nomes inválidos, tipos nomeados duplicados e unions malformadas recebem uma mensagem clara com o caminho exato do campo — e depois formate-o com recuo de 2 ou 4 espaços. Tudo roda no seu navegador.
Entrada
Saída
Guias
Cole um esquema Apache Avro — o documento JSON que descreve os campos de um record, usado em tópicos Kafka, schema registries e pipelines de serialização de dados — e esta ferramenta o verifica em relação à especificação Avro, depois o formata com indentação consistente. Tudo roda no seu navegador: nada é enviado para nenhum lugar.
Diferente de um validador de JSON comum, ela entende as regras de forma específicas do Avro. Um esquema pode ser JSON sintaticamente perfeito e ainda assim ser um esquema Avro inválido — um record sem seu array fields, um campo sem type, um símbolo de enum que não segue as regras de nomenclatura do Avro, ou uma union escrita como ["null", "null"] com o mesmo ramo duas vezes. Esta ferramenta detecta esses casos e diz exatamente qual campo está errado e por quê, em vez de uma mensagem genérica de "esquema inválido".
O que ela verifica
- A entrada é JSON bem formado, e cada nó de tipo tem uma forma reconhecida: os oito tipos primitivos (
null,boolean,int,long,float,double,bytes,string) e os seis tipos complexos (record,enum,array,map,union,fixed). - Tipos
recorddeclaram umnamee um arrayfields, e todo campo tem tantonamequantotype;enumdeclara um arraysymbolsnão vazio e sem duplicatas;arraydeclaraitems;mapdeclaravalues;fixeddeclara umsizeinteiro positivo. - Tipos nomeados (
record/enum/fixed) não colidem, e uma referência a um tipo nomeado definido em outro lugar do mesmo documento — para frente ou para trás — é resolvida e sinalizada se nada corresponder. - Unions são arrays JSON, e cada tipo pode aparecer em uma union no máximo uma vez — o Avro não permite dois ramos
string, ou dois ramosrecord, lado a lado.
Como usar
- Cole o JSON do seu esquema Avro na caixa de entrada, ou clique em Teste um exemplo para carregar um record de amostra.
- Escolha indentação de 2 ou 4 espaços.
- Leia a linha de resultado: Esquema Avro válido com um resumo rápido de records, campos, enums, unions e tipos fixed, ou Esquema Avro inválido com o problema exato e seu caminho (por exemplo,
fields[2].type). - Copie ou baixe o esquema formatado — esquemas válidos são salvos como
schema.avsc, correspondendo à extensão que as ferramentas Avro esperam.
A validação e a formatação são executadas automaticamente enquanto você edita, então você pode corrigir um campo por vez e ver o resultado ser atualizado em tempo real.
Esta ferramenta resolve esquemas de um schema registry remoto?
Não. O Avro não tem buscas remotas no estilo $ref — ele permite que um esquema referencie outro tipo nomeado definido dentro do mesmo documento (pelo nome, com um namespace opcional), o que esta ferramenta resolve. Um esquema que só existe em um arquivo separado ou em um registry não pode ser verificado sem ser buscado, e esta ferramenta do lado do cliente deliberadamente nunca faz isso.
O que significa "union" em um esquema Avro?
Uma union permite que um campo guarde um de vários tipos, escrito como um array JSON em vez de um único tipo — mais comumente ["null", "string"] para tornar um campo opcional. Esta ferramenta aplica a regra que mais causa problemas: uma union pode conter no máximo um ramo de cada tipo, então ["string", "string"] ou duas definições inline de record com o mesmo nome são rejeitadas.
Meu esquema é privado?
Sim. O parse, a validação e a formatação acontecem todos em JavaScript puro no seu dispositivo — na aba do navegador, ou no runtime da API/Node se você chamar programaticamente. Nada é transmitido, registrado ou armazenado.
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.