使い方
- openapi.yaml
定義を貼る・開く
- 検証結果問題点を一覧にエンドポイント一覧
検証して一覧にする
- curl の例YAML ⇄ JSON
curl の例や JSON で出す
入力欄に OpenAPI(または Swagger 2.0)の YAML・JSON を貼り付けるか、「ファイルを開く」で読み込みます(複数ファイルも可)。「サンプル」で試すこともできます。
「閲覧」では、検索・絞り込みでエンドポイントを選び、パラメーター・リクエスト本文・レスポンス・スキーマのツリー・例・curl の例を確認します。スキーマ・セキュリティ・基本情報のタブもあります。
「検証」では、構文エラーの行・列、公式スキーマとの不一致、未定義の $ref・operationId の重複・パスパラメーターの不足・例とスキーマの食い違いなどを一覧します。「位置へ移動」で入力欄の該当箇所を選択します。
「変換」では YAML と JSON を相互に変換し、コピーまたはダウンロードします。
別ファイルへの相対参照(./schemas.yaml#/Pet など)は、同時に読み込んだファイルの中から解決します。読み込んでいない参照は「未解決」と表示します。
できること
公式スキーマで検証
Swagger 2.0・OpenAPI 3.0・3.1 の公式 JSON Schema(@apidevtools/openapi-schemas 2.1.0)に照らして検証し、不一致を入力欄の行・列つきで示します。検証は Web Worker で行うため、大きな定義でも画面は固まりません。
スキーマで表せない誤りも検出
未定義の $ref、operationId の重複、パスのテンプレートとパスパラメーターの過不足、required に書いた項目が properties にない、minimum が maximum より大きい、未定義のセキュリティ方式、example・default とスキーマの食い違いを調べます。
タグ別一覧と詳細
メソッド・パス・概要・deprecated をタグごとに並べ、検索で絞り込めます。操作ごとにパラメーター・リクエスト本文・レスポンス(ヘッダー・メディアタイプ別の例つき)・必要なセキュリティ方式を表示します。
循環参照に強いスキーマのツリー
$ref を辿って allOf・oneOf・anyOf も展開します。循環参照は「循環」と示して止め、深さ 10・3,000 ノードで打ち切るため、再帰的な定義でも固まりません。
複数ファイルの相対参照
同時に読み込んだ複数ファイルの間の相対参照(別ファイルの #/components/... など)を解決します。URL など読み込んでいない参照は取得せず、「未解決」として数を表示します。
curl の例(プレースホルダー付き)
操作ごとに curl のコマンド例を作ります。認証情報・未指定の値は <TOKEN>・<API_KEY> のようなプレースホルダーのままで、実際には送信しません。
こんなときに
- 書きかけの OpenAPI の YAML が仕様に合っているか、エディターを開かずに確認したい
- 受け取った Swagger・OpenAPI の定義を、Swagger UI を立てずにブラウザで読みたい
- operationId の重複やパスパラメーターの定義漏れを、レビュー前に見つけたい
- 例(example)がスキーマと食い違っていないか確かめたい
- 機密を含む社内 API の定義を、外部サービスへ送らずに確認したい
- OpenAPI の YAML と JSON を相互に変換したい
対応形式
入力
出力
対応状況
| 機能 | 対応 | 補足 |
|---|---|---|
| OpenAPI 3.0 / 3.1・Swagger 2.0 の閲覧(エンドポイント・スキーマ・例・セキュリティ方式) | 対応 | — |
| 構文エラーの行・列表示(YAML・JSON) | 対応 | — |
| 公式 JSON Schema による検証 | 対応 | 2.0・3.0・3.1 が対象。3.2 は 3.1 として閲覧のみ(スキーマ検証はしません) |
| 未定義の $ref・operationId の重複・パスパラメーター・required の矛盾・例とスキーマの食い違いの検出 | 対応 | 例の照合は最大 300 件・4 秒まで |
| 複数ファイルの相対参照の解決 | 対応 | 同時に読み込んだファイルの間のみ |
| YAML ⇄ JSON 変換 | 対応 | YAML のコメントは JSON では残りません |
| curl の例の生成 | 一部対応 | 例・既定値のある値だけを使い、認証情報はプレースホルダー。複雑なシリアライズ(style・explode)は反映しません |
| description の Markdown | 一部対応 | 整形せずテキストのまま表示します |
| 外部の $ref(URL・読み込んでいないファイル)の取得 | 非対応 | 通信しないため「未解決」と表示します |
| Try it out(実際に API を呼ぶ) | 非対応 | 通信を伴うため作っていません |
| Swagger 2.0 → OpenAPI 3 への変換 | 非対応 | 信頼できる変換ライブラリをブラウザ向けに同梱できていないため対象外です。2.0 は 2.0 のまま閲覧・検証できます |
| 外部ファイルを含む定義全体の検証 | 一部対応 | 検証の対象は最初の仕様ファイルのみ。ほかのファイルは参照の解決にだけ使います |
| オフラインでの利用 | 対応 | 一度開いたあとは通信なしで動作 |
制限・注意事項
- 1 ファイル 500 万文字、合計 1,000 万文字、最大 20 ファイルまでです。100 万文字を超える場合は自動実行を止め、「実行」ボタンで処理します。
- 入れ子の深さは 100 階層まで。YAML のエイリアスは 100 回までで、超えると拒否します。
- 一覧に載せる操作は 3,000 件まで、検証結果は 300 件まで表示します。スキーマのツリーは深さ 10・3,000 ノードまでで、超えた部分は省略します。
- 処理が 30 秒を超えた場合は中止します(巨大な定義や、時間のかかる pattern を含む定義など)。
- description に書かれた Markdown・HTML は解釈せず、テキストとして表示します。リンクは http(s) のみ、rel="noopener noreferrer nofollow" で別タブに開きます。
- 3.0 の nullable や 2.0 の x-nullable は、例の照合時に null を許す指定として扱います。
プライバシーと安全性
入力した定義・読み込んだファイルは、お使いのブラウザの中だけで処理されます。サーバーへの送信・保存は行わず、外部の $ref も取得しません。description の HTML は実行されず、テキストとして表示されます。ページを閉じると内容は消去されます。
よくある質問
Swagger Editor や Swagger UI との違いは何ですか?
OpenAPI の検証では何を調べますか?
operationId が重複していると何が困りますか?
別ファイルへの $ref はどう扱われますか?
Swagger 2.0 を OpenAPI 3 に変換できますか?
定義がサーバーに送られることはありますか?
関連ツール
JSON 整形・検証(JSON Studio)
JSON を貼り付けるだけで整形・1 行化・構文チェック。エラーは「何行目の何が悪いか」まで表示し、コメントや末尾カンマは自動修復できます。データは端末の外へ送信しません。
YAML / TOML 検証・整形・変換(YAML / TOML Studio)
YAML・TOML・JSON を貼り付けるだけで構文チェック・整形・相互変換。エラーは行と列で示し、「no が false になる」などの型の落とし穴と、変換で失われるものを事前に警告します。データは端末の外へ送信しません。
curl解析・コード生成
Chrome や Firefox の「cURL としてコピー」を貼ると、メソッド・URL・ヘッダー・Cookie・本文を表にし、12 種類のコードへ変換します。リクエストは送らず、すべてブラウザの中で処理します。Authorization や Cookie は共有前に伏せられます。
JSON→型・Schema生成(Schema Codegen)
JSON のサンプル・JSON Schema・OpenAPI を貼ると、10 種類の形式の型定義を生成します。複数のサンプルを並べると、省略されるキーや型の違いも推論します。データは端末の外へ送信しません。
秘密情報スキャナー(Secret Scanner)
コードや設定ファイルを貼る・ドロップするだけで、公開前に消すべき秘密情報の候補を行番号つきで一覧します。値は既定で伏せ字、*** に置き換えたコピーも作れます。あくまで補助ツールで、検出漏れがないことは保証しません。
テキスト・コード Diff
変更前と変更後を貼り付けるかファイルをドロップするだけで、追加・削除された行と、行の中で変わった単語まで色分けして表示します。結果は unified 形式のパッチとしてコピー・保存でき、入力はブラウザの外へ出ません。
最終更新: