# AsyncAPI 確認・イベント API 差分チェック

AsyncAPI の YAML・JSON を貼るだけで、サーバー・チャンネル・操作・メッセージの一覧と、解決できない $ref や使われていない components の指摘を行番号つきで出します。旧と新を比べると、チャンネルや操作の削除、payload の項目の削除や必須化などの候補を示します。定義はブラウザの外へ送りません。

- URL: https://tools.itlibra.com/ja/asyncapi-studio
- 端末内で処理・アップロードなし
- 最終更新: 2026-10-31

## 使い方

1. 「変更前（古い定義）」に古い AsyncAPI、「変更後（新しい定義）」に新しい AsyncAPI を貼るか、「ファイルを開く」で読み込みます。「サンプルで試す」でも確かめられます。
2. 1 つだけ確かめたいときは「文書を確認」を押します（左の欄を読みます）。2 つを比べるときは「差分を調べる」を押します（Ctrl または ⌘ + Enter も使えます）。
3. 確認では、サーバー・チャンネル・操作・メッセージの一覧と、行番号つきの指摘が出ます。差分では、破壊的変更の候補と安全な変更が出ます。
4. 「Markdown をコピー」で PR の説明に貼れる表にできます。「JSON を保存」では、判定・件数・変更の一覧を保存します。

## こんなときに

- イベントの定義（AsyncAPI）を変更する PR で、既存の購読者を壊すおそれのある変更がないかを確かめたい
- 解決できない $ref や、どこからも使われていない components を、行番号で見つけたい
- 2.x と 3.0 の書き方が混ざっていないかを確かめたい
- 社内のイベント定義を外部に送らずに、旧新の差を調べたい

## できること

### チャンネル・操作・メッセージの一覧

2.x の publish・subscribe と、3.0 の channels・operations（send・receive）を読み、一覧にします。

### $ref の解決と循環の検出

文書の中の #/... の参照を解決し、解決できないものと循環を行番号つきで示します。外部ファイルや URL は取りに行きません。

### 書き方の指摘

バージョン欄・info の title と version・2.x と 3.0 の混在・operation の channel の漏れ・使われていない components などを指摘します。

### 破壊的変更の候補

チャンネル・操作・メッセージの削除、payload の項目の削除・型の変更・必須の追加などを候補として示し、追加などの安全な変更と分けます。

### ブラウザの中だけで処理

文書は送信せず、ブラウザの中だけで読みます。ブローカーには接続しません。


## 対応形式

### 入力

- AsyncAPI 2.x（2.6.0 など）
- AsyncAPI 3.0.0
- .yaml / .yml / .json
- UTF-8（BOM 付き可）

### 出力

- 画面の一覧（定義・指摘・差分）
- Markdown（PR 用の表）
- JSON（判定・件数・変更の一覧）


## 対応状況

| 機能 | 対応 | 補足 |
| --- | --- | --- |
| AsyncAPI 2.x・3.0 の YAML・JSON の読み込み | 対応 | — |
| info・servers（protocol）・channels・operations・messages・components の一覧 | 対応 | — |
| 文書の中の $ref（#/...）の解決と循環の検出 | 対応 | — |
| 外部ファイル・URL の $ref | 非対応 | 取得せず、「解決しない」と示します |
| 指摘: バージョン欄・info・未定義の $ref・使われていない components・operation の channel の漏れ・書き方の混在 | 対応 | よく使う誤りの検査です。完全なスキーマ検証ではありません |
| 旧新の比較（チャンネル・操作・メッセージの追加と削除、payload の項目・型・必須・enum） | 対応 | payload は文書の中で解決できた部分だけ比べます |
| 完全な JSON Schema の検証（payload の値の検証） | 非対応 | — |
| ブローカーへの接続・メッセージの送受信 | 非対応 | 通信しません |
| AsyncAPI 1.x | 非対応 | 未対応です。バージョン欄で示します |
| コード生成・HTML ドキュメントの生成 | 非対応 | — |
| オフラインでの利用 | 対応 | 一度開いたあとは通信なしで動作します |

## 制限・注意事項

- 1 つの文書は 30 万文字まで。ファイルは 1 MB まで読み込みます。
- 参照の展開は深さ 5 段まで。超えた部分は比べません。
- 判定は書き方と互換性の一般的な考え方によるもので、API ごとの方針によって変わります。

## プライバシーと安全性

文書はお使いのブラウザの中だけで読み、送信も保存もしません。ページを閉じると内容は消えます。analytics には、入力の中身や件数を含まない実行の記録だけを送ります。

## よくある質問

### AsyncAPI とは何ですか？

イベント駆動の API（メッセージのチャンネルと送受信）を YAML・JSON で書くための仕様です。HTTP の API は OpenAPI で書きます。

### OpenAPI の確認ツールとの違いは？

OpenAPI は HTTP の API（パスとメソッド）を、AsyncAPI はメッセージのチャンネルと送受信を書きます。どちらの定義かで、使うツールを選んでください。

### AsyncAPI 2.x と 3.0 の書き方の違いは？

2.x は channel の下に publish と subscribe を書き、3.0 は channels と operations（send・receive）を分けて書きます。このツールは両方を読み、混在を指摘します。

### 外部ファイルの $ref は解決できますか？

いいえ。ファイルを取りに行かないので「解決しない」と表示します。関係する定義を components にまとめて貼ると確かめられます。

### 文書が仕様に合っているかを完全に検証できますか？

いいえ。よく使う誤りを見る軽い検査です。完全な検証は、AsyncAPI の公式のツールなどで行ってください。
