Swagger 2.0 バリデーター

Swagger 2.0 の定義を JSON または YAML で貼り付けると、swagger バージョンフィールド、title と version を持つ info オブジェクト、paths オブジェクトがあるかを確認できます。パスの項目は、先頭のスラッシュの有無と、標準のオペレーションではないキーがないかが調べられます。

Swagger 2.0 ファイルのチェック方法

  1. 1

    定義をコピーする

    `swagger: "2.0"` の行から始めて、`swagger.json` または `swagger.yaml` の全体をコピーします。

  2. 2

    貼り付ける

    OpenAPI / Swagger ドキュメントの入力欄に貼り付けます。

  3. 3

    チェックを実行する

    結果のステップに進むと、エラーと警告が表示されます。

  4. 4

    更新して再チェックする

    ファイルで修正を適用し、レポートがクリーンになるまで新しいバージョンを貼り付けます。

Swagger 2.0 で合格とみなされる条件

2.0 のファイルでは、バージョンの確認はトップレベルの swagger キーがあれば満たされます。ツールはその値が "2.0" であるかまでは確認しないため、間違った番号は検出されません。バージョンのほかに、info.title、info.version、paths オブジェクトが必要です。

host、basePath、schemes、definitions、securityDefinitions など、Swagger 2.0 固有のフィールドは検査されません。host が欠けていたり、definitions のブロックが壊れていたりしても報告されません。

実例

{
  "swagger": "2.0",
  "info": { "title": "Shop API", "version": "1.0" },
  "paths": {
    "/products": {
      "get": { "summary": "List products" },
      "x-internal": true
    }
  }
}

バージョンフィールド、info、paths がすべてあるため、エラーはありません。レポートには警告が 1 件表示されます。

検出内容 種別 理由
Unknown method ‘x-internal’ on /products. 警告 このキーは標準のオペレーションでもパスアイテムのフィールドでもない

警告はドキュメントの有効性を妨げないため、このドキュメントは有効と判定されます。x-internal のようなベンダー拡張キーは Swagger 2.0 でも正当な書き方なので、そのまま残してもかまいません。

2.0 からの移行

OpenAPI 3.x への移行を計画している場合は、変換後のファイルを同じ入力欄に貼り付けて結果を比べられます。チェックの内容は同じで、swagger フィールドの代わりに openapi フィールドを使います。実際の移行作業には、完全な変換ツールと Linter を使ってください。このツールは definitions や host の設定を変換しないためです。

簡易チェックで十分な場合

Swagger 2.0 の定義は何年もリポジトリに残り、手作業で編集されることが多くあります。引き継いだファイルがあるとき、ツールがそのファイルを読み込めず必須フィールドの欠落を疑うとき、2 つのファイルをマージして info と paths が残っているか確かめたいときに、素早い構造チェックが役立ちます。definitions やセキュリティ設定を含む 2.0 の完全なルールについては、専用の Linter で確認してください。

クリーンなレポートは、構造についてのみ述べていることを忘れないでください。レスポンスのないオペレーション、誤ったパラメーター型、解決されない参照は、このチェックの範囲外です。ドキュメントツールやコード生成ツールでもファイルを試してください。

よくある質問

いいえ。確認するのは swagger または openapi フィールドの存在で、その中身は確認しません。

いいえ。確認されるのは、バージョンフィールド、info オブジェクト、paths オブジェクト、各パスの配下の項目だけです。

はい。テキストはまず JSON として読み取られ、失敗した場合は YAML として読み取られます。貼り付ける際はインデントを変えないでください。

パスレベルの parameters、summary、description、servers は受け付けるキーの一覧に含まれているため、未知のメソッドの警告は出ません。

関連ツール

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

使い方ガイドと活用例