跳到主要内容

Apache Avro 模式格式化与验证工具

根据 Avro 规范验证 Apache Avro 模式(JSON)——缺少 type/fields/name、未知类型、无效名称、重复的命名类型和格式错误的 union 都会得到清晰的提示,并指出精确的字段路径——然后以 2 或 4 个空格的缩进重新格式化。整个过程完全在您的浏览器中运行。

输入

输出

格式化后的模式
 
这对您有帮助吗?

使用指南

粘贴 Apache Avro 模式 — 即描述记录字段的 JSON 文档,常用于 Kafka 主题、模式注册表和序列化数据管道 — 这个工具会对照 Avro 规范检查它,然后用一致的缩进重新格式化。一切都在您的浏览器中运行:不会上传到任何地方。

与普通的 JSON 验证工具 不同,它理解 Avro 自身的结构规则。一个模式可以是语法上完美的 JSON,但仍然不是有效的 Avro 模式 — 例如缺少 fields 数组的 record、没有 type 的字段、不符合 Avro 命名规则的枚举符号,或者写成 ["null", "null"](同一分支出现两次)的 union。这个工具能捕获这些问题,并准确告诉您哪个字段错了、为什么错,而不是给出笼统的"无效模式"提示。

检查内容

  • 输入是格式良好的 JSON,每个类型节点都是可识别的结构:八个原始类型(nullbooleanintlongfloatdoublebytesstring)和六个复杂类型(recordenumarraymapunionfixed)。
  • record 类型声明 namefields 数组,每个字段都必须同时具有 nametypeenum 声明非空且无重复的 symbols 数组;array 声明 itemsmap 声明 valuesfixed 声明正整数 size
  • 命名类型(record/enum/fixed)不会冲突,对同一文档中其他地方定义的命名类型的引用 — 无论向前还是向后 — 都会被解析,如果没有匹配项则会被标记。
  • union 是 JSON 数组,每种类型在 union 中最多出现一次 — Avro 不允许两个 string 分支或两个 record 分支并列。

使用方法

  1. 将 Avro 模式 JSON 粘贴到输入框中,或点击试试示例加载一个示例记录。
  2. 选择 2 或 4 个空格的缩进。
  3. 查看结果行:有效的 Avro 模式,附带记录、字段、枚举、union 和 fixed 类型的快速统计;或无效的 Avro 模式,附带具体问题及其路径(例如 fields[2].type)。
  4. 复制或下载格式化后的模式 — 有效的模式会保存为 schema.avsc,与 Avro 工具链期望的扩展名一致。

验证和格式化会在您编辑时自动运行,因此您可以逐字段修复,并实时查看结果更新。

这个工具会从远程模式注册表解析模式吗?

不会。Avro 没有 $ref 式的远程查找 — 它允许一个模式引用 同一文档内 定义的另一个命名类型(按名称,可选命名空间),这个工具会解析这类引用。只存在于单独文件或注册表中的模式,不获取就无法检查,而这个客户端工具刻意从不这样做。

Avro 模式中的 "union" 是什么意思?

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.

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。