Apache Avro スキーマ フォーマッター & バリデーター
Apache Avro スキーマ(JSON)を Avro 仕様に照らして検証します — type/fields/name の欠落、不明なタイプ、不正な名前、重複した名前付きタイプ、不正な union について、正確なフィールドパス付きの明確なメッセージを表示 — さらに 2 または 4 スペースのインデントで整形します。すべてブラウザ内で完結します。
入力
出力
ガイド
Apache Avro スキーマ — レコードのフィールドを記述する JSON ドキュメントで、Kafka のトピック、スキーマレジストリ、データシリアライゼーションパイプラインで使われます — を貼り付けると、このツールが Avro 仕様に照らしてチェックし、一貫したインデントで整形します。すべてブラウザ内で実行され、どこにもアップロードされません。
通常の JSON バリデーター とは異なり、Avro 固有の構造規則を理解します。構文的に完璧な JSON でも、Avro スキーマとしては無効な場合があります — fields 配列がない record、type のないフィールド、Avro の命名規則に合わない enum のシンボル、同じブランチを 2 つ持つ ["null", "null"] のような union。このツールはこれらを検出し、「無効なスキーマ」という一般的なメッセージではなく、どのフィールドがなぜ間違っているのかを正確に教えてくれます。
チェック内容
- 入力が正しい JSON であり、すべてのタイプノードが認識された形であること:8 つのプリミティブ型(
null、boolean、int、long、float、double、bytes、string)と 6 つの複合型(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 内に最大 1 回しか出現できません — Avro では 2 つの
stringブランチや、2 つのrecordブランチが並ぶことは許されません。
使い方
- Avro スキーマの JSON を入力ボックスに貼り付けるか、サンプルを試すをクリックしてサンプルレコードを読み込みます。
- 2 スペースまたは 4 スペースのインデントを選択します。
- 結果行を確認します:レコード、フィールド、enum、union、fixed 型の簡単な集計付きの 有効な Avro スキーマ、または正確な問題とそのパス(例:
fields[2].type)を示す 無効な Avro スキーマ。 - 整形されたスキーマをコピーまたはダウンロードします — 有効なスキーマは Avro ツールが期待する拡張子に合わせて
schema.avscとして保存されます。
編集するたびに検証と整形が自動的に実行されるため、フィールドを 1 つずつ修正しながら、結果がリアルタイムで更新されるのを確認できます。
リモートのスキーマレジストリからスキーマを解決しますか?
いいえ。Avro には $ref のようなリモート参照はありません — あるスキーマは 同じドキュメント内 で定義された別の名前付き型を(名前で、オプションの namespace 付きで)参照できます。これをこのツールが解決します。別のファイルやレジストリにしか存在しないスキーマは、取得しなければチェックできませんが、このクライアントサイドのツールは意図的に決して取得しません。
Avro スキーマにおける「union」とは何ですか?
union は、フィールドが複数のタイプのいずれかを保持できるようにするもので、単一のタイプの代わりに JSON 配列として記述します — 最も一般的なのはフィールドをオプションにする ["null", "string"] です。このツールは、最もつまずきやすいルールを適用します:union は各タイプのブランチを最大 1 つしか持てないため、["string", "string"] や同じ名前のインライン record 定義が 2 つある場合は拒否されます。
スキーマはプライベートですか?
はい。解析、検証、整形はすべてデバイス上の純粋な 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.