API レスポンス検証

期待する JSON Schema とキャプチャ済みレスポンスを貼り付けると、対応ルールに基づく検証レポートをコピーできます。比較は手元のデータだけで完結し、対象の API を呼び出すことはありません。

ブラウザ内でローカルに実行
スキーマとレスポンスの検証はすべてこのブラウザ内で行われます。ペイロード、アカウントデータ、API 資格情報がページの外に送信されることはありません。
JSON Schema
キャプチャした API レスポンス
検証サマリー

対応ルールにはローカル $ref、type、オブジェクトのプロパティ、必須フィールド、配列、enum、const、format、長さ、パターン、範囲、一般的な合成ルールが含まれます。

検証結果
  • JSON Schema と API レスポンスを貼り付けて検証します。

テストランナーなしでレスポンス契約を検証する

これはフィクスチャやキャプチャしたレスポンスのためのブラウザ側の契約ヘルパーです。高度な JSON Schema 語彙、リモート参照、本番環境への統合時の動作については、ご自身の API テストスイートで確認してください。

API レスポンスを検証する手順

API が約束する JSON Schema とキャプチャ済みの JSON レスポンスを貼り付けて「レスポンスを検証」を押すと、違反したルールごとに JSON Pointer 形式のパスが並び、結果・エラー数・レスポンス型の 3 つのカードが表示されます。

スキーマとレスポンスはページ内で解析・照合されます。どこにも送信されず、対象の API を呼び出すこともありません。実装しているのは JSON Schema の一部のキーワードで、ドラフト全体の適合性を判定するものではありません。

  1. 左の欄に期待する JSON Schema を貼り付けます。「サンプルを読み込む」を押すと、必須の id・email・roles を持つ小さな契約が両方の欄に入り、そのまま検証されます。
  2. 右の欄にキャプチャした JSON レスポンスを貼り付けます。JSON はルール評価の前に解析されるため、壊れたデータは検証結果ではなく解析エラーとして表示されます。
  3. 「レスポンスを検証」を押します。各指摘はレベル(OK またはエラー)、$/roles/0 のような JSON Pointer パス、説明文で構成され、カードには有効/無効、エラー数、レスポンスの型が表示されます。
  4. 「レポートをコピー」で指摘をテキストとしてコピーし、「クリア」で入力欄・サマリー・指摘・コピーボタンをまとめて空にできます。入力が空のときは日本語のメッセージが表示されます。

検証するルールと検証しないルール

適用されるルール

型(integer を含む)、必須プロパティ、additionalProperties(false またはスキーマ)、深い比較による enum と const、email・uuid・date・date-time・uri・uri-reference・hostname・ipv4 の各形式、minLength/maxLength/pattern、数値と draft-4 の真偽値による minimum/maximum/exclusiveMinimum/exclusiveMaximum、multipleOf、単一の items スキーマによる minItems/maxItems/uniqueItems、minProperties/maxProperties、allOf/anyOf/oneOf を評価します。

ローカル参照は同じドキュメント内で解決します(#、#/$defs/...、#/definitions/...)。パスは JSON Pointer で、$ がルート、/0 が配列の先頭要素、名前に含まれる / と ~ は ~1 と ~0 になります。未知の format は無視し、ネストが 60 段を超えるとメッセージを出して停止します。

適用されないルール

# で始まらない $ref は取得せず「解決できない参照」として報告します。リモートスキーマは読み込みません。items のタプル形式(スキーマの配列)、if/then/else、dependencies、patternProperties、propertyNames、コンテンツエンコーディング系のキーワードは実装範囲外で、未知のキーワードは単に無視されます。

このページはペイロードをサーバーへ送信せず、実行もしません。フィクスチャやキャプチャ済みレスポンスのレビュー用であり、適合性テストではありません。ドラフト固有の挙動や本番のゲートには、自社のテストスイートで完全なバリデータを使ってください。

レポートの読み方とコピー

3 つのカードにはスキーマエラーの件数とレスポンスの JSON 型(object、array、string、number、integer、boolean、null)が表示されます。指摘は検出順に並び、問題がなければ OK の 1 件だけが表示されます。

「レポートをコピー」は [ERROR] $/id — string を期待しましたが、integer を受け取りました。のような行をコピーするので、チケットやコミットメッセージに貼り付けられます。保存は行われません。「クリア」で初期状態に戻り、再読み込み時は空のワークベンチから始まります。

最近使ったツール: