OpenAPI 検証ツール

OpenAPI または Swagger のドキュメントを JSON か YAML で貼り付けると、この検証ツールがコア構造をチェックします。ドキュメントがパースできること、openapi または swagger のバージョンフィールドがあること、タイトルとバージョンを持つ info オブジェクトがあること、paths オブジェクトがあることを確認し、続いてスラッシュで始まらない path と未知の HTTP メソッドを指摘します。これは完全な JSON Schema 検証ツールではなく、素早い構造チェックです。

検証はどう進むか

  1. 1

    ドキュメントを貼り付ける

    OpenAPI 2(Swagger)または OpenAPI 3 の JSON または YAML。

  2. 2

    パースする

    検証ツールはドキュメントを JSON としてパースし、失敗した場合は YAML のパースにフォールバックします。

  3. 3

    必須フィールドを確認する

    `openapi` または `swagger` のバージョンフィールド、`title` と `version` を持つ `info` オブジェクト、そして `paths` オブジェクトがあることを確認します。

  4. 4

    path をスキャンする

    各 path が先頭スラッシュで始まるかを確認し、各 operation キーを既知の HTTP メソッドと照合します。

  5. 5

    レポートを読む

    エラーは有効性をブロックし、警告は先頭スラッシュのない path と未知のメソッドを指摘します。

この検証ツールがチェックするもの

チェック 失敗時の結果
ドキュメントが JSON または YAML でパースできる エラー
openapi または swagger フィールドがある エラー
info オブジェクトがある エラー
info.title がある エラー
info.version がある エラー
paths オブジェクトがある エラー
各 path が / で始まる 警告
operation キーが既知の HTTP メソッド 警告

すべてのエラーを通過したドキュメントは、構造的に有効と報告されます。警告は有効性をブロックせず、直す価値のある点を指摘します。

チェックしないもの

これは構造チェックであり、完全な仕様検証ツールではありません。次のことはしません:

  • 使用中のバージョンの公式 JSON Schema に対してすべてのノードを検証する;
  • $ref 参照を解決したり、それが指すコンポーネントの存在を確認したりする;
  • path パラメータが一貫して宣言・使用されているかを確認する;
  • operationId の値があるか、一意かを検証する;
  • エラーの行番号を報告する。

その深さが必要なら、redocly lintswagger-cli validatespectral lint などの専用 CLI 検証ツールを実行してください。このツールは、仕様をコミットしたり共有したりする前の素早い健全性チェックに使ってください。

実際に使われている OpenAPI のバージョン

バージョン 備考
Swagger 2.0 いまも広く使われている; swagger: "2.0" を使用
OpenAPI 3.0.x 最も一般的な 3.x 系
OpenAPI 3.1.0 JSON Schema 2020-12 に整合

この検証ツールは openapi フィールド(3.x)または swagger フィールド(2.0)のいずれかを受け付けるので、これらはすべてバージョンチェックを通過します。

通過する最小のドキュメント

openapi: 3.0.3
info:
  title: Example API
  version: 1.0.0
paths:
  /users:
    get:
      summary: List users

必須フィールドがすべて存在し、唯一の path が先頭スラッシュで始まり、get が既知のメソッドなので、これは構造的に有効と報告されます。

よくある質問

Swagger はこの仕様のもとの名前で、2015 年に Linux Foundation に寄贈され、バージョン 3.0 から「OpenAPI」に改名されました。「Swagger」は今ではツール(Swagger UI、Swagger Editor)を指します。仕様そのものは OpenAPI です。この検証ツールは swagger(2.0)と openapi(3.x)の両方のバージョンフィールドを受け付けます。

いいえ。コア構造をチェックします:ドキュメントがパースでき、バージョンフィールド、タイトルとバージョンを持つ info オブジェクト、paths オブジェクトがあることを確認し、先頭スラッシュのない path と未知のメソッドを警告します。公式 JSON Schema に対してすべてのノードを検証はしません。それには redocly lintspectral lint を使ってください。

いいえ。$ref 参照をたどったり、それが指すコンポーネントの存在を確認したりはしません。ファイル間の参照は、redocly bundleswagger-cli bundle などのツールでまずドキュメントをバンドルしてから、完全な検証ツールを実行してください。

いいえ。貼り付けたドキュメントだけを検査し、実行中のコードは検査しません。あなたの API が仕様の記述どおりに実際に返すかどうかはわかりません。Dredd や Schemathesis のような契約テストツールがそれを行います。

関連ツール

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