ブラウザ専用JSON Schemaバリデーターを構築しました... ノート

ブラウザ専用JSON Schemaバリデーターを構築しました — Draft-07、$ref、allOf/anyOf/oneOf、if/then/else、173のテスト

ゼロ依存の新しいブラウザツールが、JSON Schema Draft-07仕様をゼロから検証するために開発されました。このツールは、Node.jsプロジェクトのセットアップを必要とせずに、スキーマの迅速なチェック、デバッグ、学習のために設計されています。型システム、列挙、文字列、数値、配列、オブジェクト、結合、条件、参照を含むDraft-07キーワードの包括的なサブセットを実装しています。バリデーターは、メール、URI、日付、UUIDなどの一般的なフォーマットもサポートしています。各検証エラーは、失敗した値へのJSONパス、人間が読めるメッセージ、および失敗した特定のルールを示すキーワードバッジを提供します。ツールのアーキテクチャは、スキーマに対してデータを検証する単一の再帰関数に基づいています。型チェックを優先し、データ型がスキーマの期待される型と一致しない場合は早期に返します。バリデーターは、排他的最小値と最大値のキーワードに関して、古いDraft-04バージョンとの互換性も処理します。ローカルの$ref解決は、ルートスキーマ内のJSONポインタパスをトラバースすることによって管理され、$refキーワードは仕様に従って他のすべての兄弟キーワードをショートサーキットします。if/then/elseを使用した条件付き検証は、Draft-07の重要な機能であり、より動的なスキーマルールを可能にするために実装されています。ツールには、実装されたすべての関数とキーワードをカバーする170以上のテストが含まれており、正確性と信頼性を保証します。ユーザーインターフェースは、JSONとスキーマのスプリットペインレイアウトを備え、結果は下に表示されます。パースエラーは、ペインごとに即座に表示されます。エラーカードは、ajvのような人気のあるライブラリのフォーマットを反映した、情報量の多いデザインになっています。3つの組み込み例が用意されており、すぐに探索を開始できます。このツールはjson-schema-validator-dev.pages.devでオンラインでアクセスでき、ブラウザ専用の開発者ツールの成長中のコレクションの一部です。