概要

ユースケース

JSON Schemaでできることすべてをご覧ください。このセクションでは、JSON Schemaの最も一般的なユースケースを紹介しますが、他にも多くのアプリケーションが発見されるのを待っているかもしれません。

Structural validation

構造検証


構造検証とは、JSONドキュメントが従うべき構造、例えば、どのプロパティが存在しなければならないか、どのタイプの値がどこに期待されるか、そしてそれらがどのように見えるべきか、などを指します。

Semantic annotation

セマンティックアノテーション


JSONドキュメント内の値にアノテーションを付ける必要があります。機械可読性とドキュメント化の目的のためです。

Domain-specific language

ドメイン固有言語


開発者は、JSON Schemaを内部でドメイン固有言語として使用するアプリケーションを作成することがあります。そのため、スキーマは単一の当事者によって単一のアプリケーション内でのみ使用されます。宣言型言語を使用することで、アプリケーションの要件を人間が行うよりも बेहतरに最適化できます。

A common vocabulary

共通語彙


開発チームは、2つの類似したアプリケーションを、異なるプラットフォーム、異なる言語で保守しています。アプリケーションは、JSONドキュメントの共通リポジトリからダウンロードして読み取ります。彼らは、両方のアプリケーションがJSONを受け入れるか拒否するかの動作を同一にするために、単一のJSON Schemaを作成し、両方のアプリケーションにデプロイします。

Model-Driven UI constraints

モデル駆動型UI制約


サーバーが送信が満たさなければならない制約を宣言する場合、ユーザーインターフェースがこれらの制約を受け取り、許可される値のモデル駆動型検証を提供し、フォームをユーザーにとってよりアクセスしやすいものにする必要があります。

UI Generation

UI生成


JSON Schemaを使用して、特定のスキーマに準拠するユーザーインターフェースを自動的に生成できます。

Data Serialization

データシリアライゼーション


JSONデータを圧縮して保存/送信します。例: https://jsonbinpack.sourcemeta.com

Fuzzing, enumeration, and generation

ファジング、列挙、および生成


セキュリティアプリケーションは、有効なセット内と有効なセット外のJSONドキュメントの例を生成する必要があります。

Partial validation

部分検証


技術的な制限により、一部のJSONパーサーはJSON値空間のサブセットしか理解できない場合があります。そのため、JSONパーサーに提供されたJSONドキュメントではなく、アプリケーションによって読み取られた値を検証するのが理にかなっています。

Automated Testing

自動テスト


スキーマが提供する入力/出力の適切な定義により、コントラクトベースおよびプロパティベースのテストシナリオが可能になります。例: https://schemathesis.readthedocs.io/en/stable/

Machine-readable profiles of Web resources

Webリソースの機械可読プロファイル


JSONドキュメントを提供するWebサーバーは、機械可読形式でデータの意味を記述するプロファイルドキュメントにリンクできる必要があります。

Schema Inference

スキーマ推論


これはデータサイエンスで非常に役立ちます。巨大なJSONデータセットがあり、構造をよく知らない場合があります。データを元にJSON Schemaを導出するツールを使用して、データをよりよく理解し、それに基づいて行動することができます。

Hypermedia

ハイパーメディア


汎用ユーザーエージェントは、Webブラウザ、スパイダー、自動ツールなど、進化するにつれてスキーマを利用できる必要があります。HTMLホームページのように疎結合をサポートする必要があります。そのため、スキーマは、互換性のあるクライアントの破損を最小限に抑えながら、機能を変更、追加、および削除できる必要があります。

Results and Reporting

結果とレポート


スキーマと入力を提供する当事者と、検証を実行する当事者は同じではない場合があります。この場合、バリデーターインターフェースを抽象化し、検証操作の結果(検証結果、アノテーション、およびエラー)を報告するための標準的な方法が必要です。

External validation

外部検証


作成者は、テキストドキュメント、base64 または 16 進数エンコードされたバイナリドキュメントなど、他のメディアタイプの resource を埋め込むことができ、これらのドキュメントの検証を別のソフトウェアツールに委ねたい場合があります。

Intra-document data consistency validation

ドキュメント内データの整合性検証


JSONドキュメントには、内部的に整合性がとれている必要があるリレーショナルデータが含まれている場合があります。

Inter-database consistency validation

データベース間の整合性検証


JSONドキュメントには、外部データソースに対して検証する必要があるリレーショナルデータが含まれている場合があります。

Linting

リンティング


ドキュメントのアプリケーションレベルの意味には影響を与えず、純粋に美的または互換性の理由から要件を指定するフォーマットを要求することが望ましい場合があります。

ヘルプが必要ですか?

このドキュメントは役に立ちましたか?

より良いドキュメント作成にご協力ください!

JSON Schema では、ドキュメントへの貢献は他のあらゆる種類の貢献と同じくらい重要視されています!

さらにヘルプが必要ですか?

JSON Schema の学習は、多くの場合混乱を招きますが、ご心配なく。お手伝いいたします。