重要なポイント
- 01Ajv(最も広く使用されているJavaScript JSONスキーマバリデータ)で駆動 — Node.js、Fastify、ほとんどのJSツールチェーンで合格するものはここで合格。
- 02複数のエラーを一度に報告(allErrorsモード)、最初の失敗のみではなく。
- 03各エラーはクイックナビゲーション用に失敗したフィールドへのJSONポインタパスを含みます。
- 04スキーマとデータの両方ブラウザで完全に実行 — アップロードなし。
JSONスキーマに対して検証する理由
JSONスキーマはJSONドキュメントの形状を説明する標準的な方法です — 必須フィールド、許可される型、値制約、ネストされたオブジェクト構造。本番に到達する前にスキーマに対して検証すると、型ミスマッチ、欠落した必須フィールド、制約違反を早期に、安価に修正できる時点で捕捉します。
最も一般的な使用例は、APIリクエストとレスポンスボディのテスト、設定ファイル検証、OpenAPI例オブジェクトチェック、既知の構造に対するデータエクスポート検証です。HandytoolのバリデータはAjv — Node.js自体の内部で使用されるデファクトJavaScript JSONスキーマライブラリを使用 — そのためここでの結果はバックエンドが表示するものと一致します。
JSONスキーマに対してJSONを検証する方法
- 01
JSONスキーマを貼り付け
左パネルにスキーマを貼り付けます。これはDraft 7または2019-09または2020-12スキーマで、型、プロパティ、必須、アイテム、anyOf、allOf — 任意の標準Ajvサポートキーワード。
- 02
JSONデータを貼り付け
右パネルに検証したいデータドキュメントを貼り付けます。これはインスタンス — APIリクエストボディ、設定オブジェクト、エクスポートレコード、またはOpenAPI仕様からの単一例。
- 03
検証をクリック
AjvはallErrors: trueで検証を実行、最初のエラーで停止するのではなく、すべての失敗を収集する意味です。
- 04
エラーリストを確認
各エラーは失敗した値へのJSONポインタパス(例:/user/email)、失敗したキーワード(型、必須、最小値)、人間が読みやすいメッセージを表示します。各ひとつを修正して再検証します。
デベロッパーがJSONスキーマで検証する内容
- 01REST APIリクエストボディ — ペイロードがエンドポイントの予想される形状と一致することを送信前に確認。
- 02OpenAPI仕様例オブジェクト — 各例をインラインスキーマコンポーネントに対して検証。
- 03設定ファイル — 必須キーが存在し、値が正しい型であることを保証。
- 04データパイプラインレコード — データプロデューサーとコンシューマー間の構造ドリフトを検出。
- 05フォーム提出ペイロード — フロントエンド検証がバックエンドスキーマ制約をミラーすることをテスト。
- 06サードパーティウェブフック本体 — ドキュメント化されたスキーマが実際のペイロードと一致することを確認。
非公開検証、サーバー不要
Ajvはブラウザで完全に実行されます。スキーマもデータもサーバーに送信されません — 内部データ構造を説明するスキーマと機密フィールド値を含むデータオブジェクトを安全に検証できます。
バリデータはJSONスキーマドラフト6、7、2019-09、2020-12をサポートします。ワイルドで最も一般的なドラフトはDraft 7で、すべての日常的なキーワードをカバーします:type、properties、required、items、minimum、maximum、pattern、enum、anyOf、allOf、oneOf、not、$ref。
JSONスキーマバリデータFAQ
どのJSONスキーマドラフトがサポートされていますか?
Ajvはドラフト6、7、2019-09、2020-12をサポートします。Draft 7は既存コードベースで最も一般的で、すべての標準キーワードをカバーします。
$refスキーマが解決されないのはなぜですか?
外部$ref URLはこのブラウザ専用ツールではフェッチされません。$defsと#/$defs/MyTypeのような局所JSONポインタを使用してすべての参照スキーマをインライン化します。
スキーマまたはデータはサーバーにアップロードされますか?
いいえ。Ajvはブラウザで完全に実行 — スキーマとデータの両方デバイスに留まります。
これを使用してOpenAPI 3仕様を検証できますか?
個別のスキーマコンポーネントと例オブジェクトを検証できます。OpenAPI全体ドキュメント検証は仕様メタスキーマを理解する専用OpenAPIバリデータが必要です。
最初のエラーだけではなく複数のエラーが表示されるのはなぜですか?
バリデータはallErrors: trueで設定されており、最初の時点で停止するのではなく、すべての失敗を収集するAjvを作成します。これは意図的 — 複数の検証試みではなく、1回のパスですべての問題を修正できます。