OpenAPI 仕様バリデーター(オンライン)

上に OpenAPI または Swagger の仕様を貼り付けると、エラーと警告の一覧が表示されます。このページでは、各メッセージの意味と修正方法を説明するため、赤いレポートからクリーンなレポートへすばやく移れます。エラーがあるとドキュメントは無効になり、警告では無効になりません。

仕様をチェックし、レポートに対応する方法

  1. 1

    仕様を貼り付ける

    JSON または YAML のドキュメントを入力欄に貼り付けます。

  2. 2

    結果を開く

    結果のステップに進むと、有効であることを示すメッセージか、エラーの一覧が表示されます。

  3. 3

    各メッセージを照合する

    下の表で該当するメッセージを探し、元のファイルで修正を適用します。

  4. 4

    もう一度貼り付ける

    エラーがなくなるまで再実行し、そのあとで、どの警告を直す価値があるかを判断します。

エラーメッセージの読み方

メッセージ 意味 修正方法
Could not parse as JSON or YAML. JSON と YAML のどちらとしても読めない 構文を修正します。余分なカンマ、インデントの誤り、閉じていない波括弧などを確認してください
Missing ‘openapi’ or ‘swagger’ version field. トップレベルにバージョンのキーがない openapi: 3.0.3 または swagger: "2.0" を追加します
Missing ‘info’ object. info セクションがない title と version を含む info を追加します
info.title is required. info に title がない info の下に title を追加します
info.version is required. info に version がない info の下に version を追加します(自分の API のバージョン)
Missing ‘paths’ object. paths セクションがない 最初は空でもよいので paths を追加します

エラーは、ドキュメントが有効と判定されるかどうかを決めるものです。まずすべてのエラーを解消してください。

警告の読み方

メッセージ 意味 修正方法
Path ‘x’ should start with ‘/’. paths 配下のキーに先頭のスラッシュがない /x に名前を変更します
Unknown method ‘x’ on /path. パス配下のキーが既知の一覧にない タイプミスがないか確認します。意図的な拡張や trace であれば無視してかまいません

既知の一覧は、get、post、put、patch、delete、head、options、parameters、summary、description、servers です。x- で始まるベンダー拡張は、この一覧に含まれないため、警告として表示されます。

オンラインチェックでわからないこと

このレポートが対象とするのは構造だけです。$ref のリンクはたどらず、スキーマ定義は確認せず、operationId の欠落も指摘しません。合格は、ファイルが OpenAPI ドキュメントの形をしていることの確認と考えてください。ドキュメントを公開する前や、クライアントコードを生成する前には、完全な Linter を使ってください。

長いレポートを処理するためのコツ

上から順に見てください。解析エラーがあれば、それ以外の結果は信頼できないため、最初に直します。次に、トップレベルの不足フィールドに取りかかります。追加は簡単だからです。その後で初めてパスの警告を見ます。修正を加えるたびに、断片ではなくファイル全体を貼り付け直してください。チェックは info と paths を見つけるために、ドキュメント全体を必要とするからです。エラーがなく、意図的な警告がいくつか残っているレポートは、正常で許容できる終点です。

よくある質問

エラーは、ドキュメントが無効と判定されることを意味します。警告は、先頭にスラッシュのないパスなど、確認が必要な項目を指摘しますが、有効という判定は変わりません。

必ずしもそうではありません。トップレベルの構造が整っていることを意味するだけです。スキーマ、参照、レスポンスは確認されていません。

パス配下のキーは、固定された HTTP メソッドの一覧と、パスアイテムの一部のフィールドと照合されます。x- のキーはその一覧に含まれないため、警告として表示されます。そのまま残してもかまいません。

いいえ。チェックの順序に従います。最初にバージョンフィールド、次に info、最後に paths です。行番号は表示されません。

関連ツール

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

使い方ガイドと活用例