概要
ユースケース
JSON Schemaでできることすべてをご覧ください。このセクションでは、JSON Schemaの最も一般的なユースケースを紹介しますが、他にも多くのアプリケーションが発見されるのを待っているかもしれません。
構造検証
構造検証とは、JSONドキュメントが従うべき構造、例えば、どのプロパティが存在しなければならないか、どのタイプの値がどこに期待されるか、そしてそれらがどのように見えるべきか、などを指します。
セマンティックアノテーション
JSONドキュメント内の値にアノテーションを付ける必要があります。機械可読性とドキュメント化の目的のためです。
ドメイン固有言語
開発者は、JSON Schemaを内部でドメイン固有言語として使用するアプリケーションを作成することがあります。そのため、スキーマは単一の当事者によって単一のアプリケーション内でのみ使用されます。宣言型言語を使用することで、アプリケーションの要件を人間が行うよりも बेहतरに最適化できます。
共通語彙
開発チームは、2つの類似したアプリケーションを、異なるプラットフォーム、異なる言語で保守しています。アプリケーションは、JSONドキュメントの共通リポジトリからダウンロードして読み取ります。彼らは、両方のアプリケーションがJSONを受け入れるか拒否するかの動作を同一にするために、単一のJSON Schemaを作成し、両方のアプリケーションにデプロイします。
モデル駆動型UI制約
サーバーが送信が満たさなければならない制約を宣言する場合、ユーザーインターフェースがこれらの制約を受け取り、許可される値のモデル駆動型検証を提供し、フォームをユーザーにとってよりアクセスしやすいものにする必要があります。
UI生成
JSON Schemaを使用して、特定のスキーマに準拠するユーザーインターフェースを自動的に生成できます。
ファジング、列挙、および生成
セキュリティアプリケーションは、有効なセット内と有効なセット外のJSONドキュメントの例を生成する必要があります。
部分検証
技術的な制限により、一部のJSONパーサーはJSON値空間のサブセットしか理解できない場合があります。そのため、JSONパーサーに提供されたJSONドキュメントではなく、アプリケーションによって読み取られた値を検証するのが理にかなっています。
自動テスト
スキーマが提供する入力/出力の適切な定義により、コントラクトベースおよびプロパティベースのテストシナリオが可能になります。例: https://schemathesis.readthedocs.io/en/stable/
Webリソースの機械可読プロファイル
JSONドキュメントを提供するWebサーバーは、機械可読形式でデータの意味を記述するプロファイルドキュメントにリンクできる必要があります。
スキーマ推論
これはデータサイエンスで非常に役立ちます。巨大なJSONデータセットがあり、構造をよく知らない場合があります。データを元にJSON Schemaを導出するツールを使用して、データをよりよく理解し、それに基づいて行動することができます。
ハイパーメディア
汎用ユーザーエージェントは、Webブラウザ、スパイダー、自動ツールなど、進化するにつれてスキーマを利用できる必要があります。HTMLホームページのように疎結合をサポートする必要があります。そのため、スキーマは、互換性のあるクライアントの破損を最小限に抑えながら、機能を変更、追加、および削除できる必要があります。
結果とレポート
スキーマと入力を提供する当事者と、検証を実行する当事者は同じではない場合があります。この場合、バリデーターインターフェースを抽象化し、検証操作の結果(検証結果、アノテーション、およびエラー)を報告するための標準的な方法が必要です。
外部検証
作成者は、テキストドキュメント、base64 または 16 進数エンコードされたバイナリドキュメントなど、他のメディアタイプの resource を埋め込むことができ、これらのドキュメントの検証を別のソフトウェアツールに委ねたい場合があります。
ドキュメント内データの整合性検証
JSONドキュメントには、内部的に整合性がとれている必要があるリレーショナルデータが含まれている場合があります。
データベース間の整合性検証
JSONドキュメントには、外部データソースに対して検証する必要があるリレーショナルデータが含まれている場合があります。
リンティング
ドキュメントのアプリケーションレベルの意味には影響を与えず、純粋に美的または互換性の理由から要件を指定するフォーマットを要求することが望ましい場合があります。
ヘルプが必要ですか?
このドキュメントは役に立ちましたか?
より良いドキュメント作成にご協力ください!
JSON Schema では、ドキュメントへの貢献は他のあらゆる種類の貢献と同じくらい重要視されています!