OpenAPI にない HTTP ステータスの抽出

ログで見かけた HTTP ステータスが、OpenAPI に定義されているかを突き合わせる。

OpenAPI 文書(JSON)と、実際に観測した「メソッド パス コード」の一覧を貼り付けると、各コードが明示・範囲(4XX など)・default のどれで定義されているか、未定義かを判定します。データは端末の外へ送信しません。

ツールを使う 入力例と結果

観測したコードが OpenAPI に定義されているか調べる

入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。

結果

エラー 0 件・警告 1 件・情報 1 件

指摘(エラー・警告・情報)

  • 情報 3 行目 GET /pets のコード 500 は個別に宣言されておらず、default の定義で受けています。個別に宣言するかは仕様の書き方の判断です。
  • 警告 5 行目 POST /pets にコード 500 の定義がありません(500・5XX・default のいずれもない)。応答の定義を追加するか、観測が想定外でないか確認してください。
観測した応答7 件
定義あり5 件
default で受けるもの1 件
未定義1 件

判定の一覧

判定の一覧
行操作コード判定
1GET /pets200定義あり(明示のコード)
2GET /pets404定義あり(範囲 4XX)
3GET /pets500個別の定義なし(default で受ける)
4POST /pets201定義あり(明示のコード)
5POST /pets500未定義
6GET /pets/{id}404定義あり(明示のコード)
7GET /pets/{id}503定義あり(範囲 5XX)

初期表示は入力例「明示・範囲・default・未定義が混ざる」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。

ご利用にあたって

  • 運用で観測した応答が仕様にないとき、仕様が古いのか実装が想定外なのかは、このツールでは判断できません。開発の担当者と確認してください。

使い方

  1. OpenAPI 文書を JSON 形式で「OpenAPI 文書」に貼り付けます。
  2. ログなどから観測したメソッド、パス、ステータスコードを、1 行に 1 つ「GET /pets/7 404」の形で入力します。
  3. 表の「判定」で、明示のコード・範囲・default・未定義のどれかが分かります。
  4. 「未定義」は警告です。仕様に応答を追加するか、想定外の応答が出ていないかを確認してください。

入力例と結果

代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。

入力例と結果の一覧
入力例結果
明示・範囲・default・未定義が混ざるエラー 0 件・警告 1 件・情報 1 件
明示のコードと範囲が両方あるエラー 0 件・警告 0 件・情報 0 件
範囲を小文字の 4xx で書いてしまったエラー 0 件・警告 2 件・情報 0 件
YAML のまま貼り付けたエラー 1 件・警告 0 件・情報 0 件

このツールでできないこと(制約)

よくある質問

default があれば未定義にはなりませんか?

はい。default は個別に宣言されていない応答用なので、default のある操作では、個別のコードがなくても未定義にはしません。ただし default で受けているコードは、仕様に個別に書くかを見直す材料として情報で知らせます。

4XX と 404 の両方があるとどちらが使われますか?

OpenAPI 3.1.0 では、明示のコード定義が範囲の定義より優先されます。404 が明示されていれば 404 の定義が使われ、404 がなければ 4XX の定義が使われます。

貼り付けた文書は送信されますか?

突き合わせはお使いのブラウザの中だけで行い、文書や観測した応答をサーバーや第三者へ送信・保存しません。ページは通信を禁止する設定で配信しています。社内の API 仕様も安心して貼り付けられます。