クライアントとサーバーの両方で任意の JSON を検証できるように、既存の (そして動作している) クライアント側の jQuery 検証スキーマを JSONSchema に移動しようとしています。
私のアプリケーションは本質的に、他の質問に対するユーザーの応答に基づいて、どの質問を行うべきかを決定する多くの複雑なロジックを備えた巨大なフォームの集まりです。各フォームには 200 以上のフィールドがあります。
現在、私はクライアント側の検証のみを行っており、約 99% の確率でうまく機能しています。ブラウザの問題が数回発生しましたが、壊滅的なものはありません. そうは言っても、サーバー側の検証を行いたい(!)。
JSONSchema ドラフトを読み、v3 実装のいくつかを参照した後、アプリケーションが依存するようになったより複雑なルールのいくつかを失う可能性があるようです。どこかの方向に進みすぎる前に、何かを見逃していないことを確認したいのです。
いくつかの例:
「x == 10 の場合、y が必要です。それ以外の場合はオプションです」
10 はリテラル値、列挙型などになる可能性がありますが、同じ構造内の別のフィールドを参照し、その値が存在するだけでなく、特定の型/値と同等であることを保証できる必要があります。
これは、JSONSchema リストのこのスレッドで対処されていると思います。
「x = 今日の日付、y = 明日の日付の場合、x > y」
このロジックは、「開始日」が「終了日」よりも前になるようにするために使用されます。
私が見ることができることから、このようなものは何もなく、それを行う唯一の方法は、新しく評価された JSON のチャンクをスキーマとして渡すことです。
上記のニーズを満たすために私が見つけた最も近いものはCERNYです。
間違ったツリーを鳴らしている場合は、お知らせください。また、クライアントとサーバーの両方で backbone.js を実行することも検討しています。
tl;dr;
大規模で複雑なフォーム用の一連の検証ルールを維持し、これらの検証ルールをクライアント側とサーバー側の両方で任意の JSON ドキュメントに適用したいと考えています。