OpenAPI JSON バリデーター

openapi.json または swagger.json の内容を貼り付けると、数秒で構造チェックの結果が得られます。このバリデーターは、JSON として解析できるか、バージョンフィールドがあるか、info に title と version があるか、paths が存在するかを確認します。そのうえで、不自然なパス名や未知のオペレーションキーについても警告します。

OpenAPI JSON ファイルの検証方法

  1. 1

    ファイルをコピーする

    `openapi.json` を開き、開き波括弧から閉じ波括弧まで、ドキュメント全体をコピーします。

  2. 2

    入力欄に貼り付ける

    OpenAPI / Swagger ドキュメントの入力欄に貼り付けます。空白を削除したり、整形し直したりする必要はありません。

  3. 3

    チェックを実行する

    結果のステップに進むと、検証が実行されます。

  4. 4

    修正して繰り返す

    エラーごとにファイルを修正し、もう一度貼り付けて、レポートにエラーがなくなるまで再実行します。

チェックが失敗する主な JSON の誤り

JSON は YAML より厳格なので、手で編集したファイルで失敗する原因の多くは、API の設計ではなく構文にあります。よくある原因は、最後のプロパティの後ろの末尾カンマ、ダブルクォートの代わりに使ったシングルクォート、コメント(JSON では使えません)、長い paths オブジェクトの後ろで閉じ波括弧が抜けていることです。壊れたファイルは、通常 “Could not parse as JSON or YAML” というメッセージで終わるか、有効な内容が読み取れなかったために必須フィールドのエラーが並びます。

解析エラーだけが表示される場合は、まず構文のミスを探してください。構造チェックは、ドキュメントがオブジェクトとして読み込めた後に実行されます。

実例

次の小さなドキュメントを例にします。

{
  "openapi": "3.0.3",
  "info": { "title": "Orders API" },
  "paths": {
    "orders": { "get": { "summary": "List orders" } }
  }
}

これは解析でき、openapi フィールドと paths オブジェクトも存在します。それでもレポートには次の内容が表示されます。

検出内容 種別 理由
info.version is required. エラー info には title はあるが version がない
Path ‘orders’ should start with ‘/’. 警告 パスのキーに先頭のスラッシュがない

エラーが 1 件あるため、このドキュメントは有効とは判定されません。info に "version": "1.0.0" を追加し、キーを /orders に変更してください。2 回目の実行で両方の指摘が消えます。

合格が意味することと、意味しないこと

レポートがクリーンであれば、骨組みは正しいということです。$ref のリンクはたどらず、スキーマも確認せず、すべてのオペレーションにレスポンスがあるかも確認しません。ファイルをコミットする前の簡易的な関門として使い、より深いルールは完全な Linter で確認してください。

JSON 仕様の実践的なワークフロー

仕様はバージョン管理で管理し、paths に変更を加えるコミットの前に、ここへ貼り付けて確認する習慣をつけてください。チェックは短時間で済むため、複数の人の変更をマージした後の健全性確認としても有効です。重複したキーや、場所を誤った波括弧が入りやすいのはこの場面です。JSON がビルドスクリプトで生成される場合は、テンプレートではなく生成された出力を貼り付けてください。読み手が実際に受け取る内容を検証できます。レポートがクリーンであれば、ファイルを共有したり、ドキュメント生成ツールに渡したりする際に、トップレベルの構造は健全だと自信を持って言えます。

よくある質問

いいえ。空白やインデントは結果に影響しません。ファイルをそのまま貼り付けてください。

標準の JSON では、オブジェクトや配列の最後の要素の後ろにカンマを置けないため、ドキュメントを JSON として読み込めません。カンマを削除して、もう一度チェックしてください。

できます。バージョンの確認では openapi フィールドと swagger フィールドのどちらも受け付けるため、Swagger 2.0 と OpenAPI 3.x のどちらの JSON ファイルも同じ構造チェックを通ります。

いいえ。指摘はフィールドの欠落やパス名などのメッセージとして表示され、行番号は示されません。メッセージに書かれたキーをファイル内で検索してください。

関連ツール

このツールは他の言語でも利用できます

使い方ガイドと活用例