メインコンテンツにスキップ

Apache Avro スキーマ フォーマッター & バリデーター

Apache Avro スキーマ(JSON)を Avro 仕様に照らして検証します — type/fields/name の欠落、不明なタイプ、不正な名前、重複した名前付きタイプ、不正な union について、正確なフィールドパス付きの明確なメッセージを表示 — さらに 2 または 4 スペースのインデントで整形します。すべてブラウザ内で完結します。

入力

出力

整形済みスキーマ
 
役に立ちましたか?

ガイド

Apache Avro スキーマ — レコードのフィールドを記述する JSON ドキュメントで、Kafka のトピック、スキーマレジストリ、データシリアライゼーションパイプラインで使われます — を貼り付けると、このツールが Avro 仕様に照らしてチェックし、一貫したインデントで整形します。すべてブラウザ内で実行され、どこにもアップロードされません。

通常の JSON バリデーター とは異なり、Avro 固有の構造規則を理解します。構文的に完璧な JSON でも、Avro スキーマとしては無効な場合があります — fields 配列がない recordtype のないフィールド、Avro の命名規則に合わない enum のシンボル、同じブランチを 2 つ持つ ["null", "null"] のような union。このツールはこれらを検出し、「無効なスキーマ」という一般的なメッセージではなく、どのフィールドがなぜ間違っているのかを正確に教えてくれます。

チェック内容

  • 入力が正しい JSON であり、すべてのタイプノードが認識された形であること:8 つのプリミティブ型(nullbooleanintlongfloatdoublebytesstring)と 6 つの複合型(recordenumarraymapunionfixed)。
  • record 型は namefields 配列を宣言し、各フィールドには nametype の両方が必要です。enum は空でなく重複のない symbols 配列を宣言します。arrayitemsmapvaluesfixed は正の整数の size を宣言します。
  • 名前付き型(record/enum/fixed)が衝突せず、同じドキュメント内の別の場所で定義された名前付き型への参照 — 前方・後方どちらでも — が解決され、一致するものがなければフラグが立てられます。
  • union は JSON 配列であり、各タイプは union 内に最大 1 回しか出現できません — Avro では 2 つの string ブランチや、2 つの record ブランチが並ぶことは許されません。

使い方

  1. Avro スキーマの JSON を入力ボックスに貼り付けるか、サンプルを試すをクリックしてサンプルレコードを読み込みます。
  2. 2 スペースまたは 4 スペースのインデントを選択します。
  3. 結果行を確認します:レコード、フィールド、enum、union、fixed 型の簡単な集計付きの 有効な Avro スキーマ、または正確な問題とそのパス(例:fields[2].type)を示す 無効な Avro スキーマ
  4. 整形されたスキーマをコピーまたはダウンロードします — 有効なスキーマは Avro ツールが期待する拡張子に合わせて schema.avsc として保存されます。

編集するたびに検証と整形が自動的に実行されるため、フィールドを 1 つずつ修正しながら、結果がリアルタイムで更新されるのを確認できます。

リモートのスキーマレジストリからスキーマを解決しますか?

いいえ。Avro には $ref のようなリモート参照はありません — あるスキーマは 同じドキュメント内 で定義された別の名前付き型を(名前で、オプションの namespace 付きで)参照できます。これをこのツールが解決します。別のファイルやレジストリにしか存在しないスキーマは、取得しなければチェックできませんが、このクライアントサイドのツールは意図的に決して取得しません。

Avro スキーマにおける「union」とは何ですか?

union は、フィールドが複数のタイプのいずれかを保持できるようにするもので、単一のタイプの代わりに JSON 配列として記述します — 最も一般的なのはフィールドをオプションにする ["null", "string"] です。このツールは、最もつまずきやすいルールを適用します:union は各タイプのブランチを最大 1 つしか持てないため、["string", "string"] や同じ名前のインライン record 定義が 2 つある場合は拒否されます。

スキーマはプライベートですか?

はい。解析、検証、整形はすべてデバイス上の純粋な 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.

ツールが気に入りましたか?広告をなくしましょう。

1回のお支払いでアカウントから広告が完全になくなります。サブスクリプションも追跡もありません。