EntityServiceの検証
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
EntityServiceは、カスタム・ビジネス・ルールを適用し、安全でない可能性のある入力からサーバーを保護するために使用する検証機能を提供します。
EntityServiceによって採用される検証メカニズムは、System.ComponentModel.DataAnnotations 名前空間で定義された型を使用します。ビジネス・オブジェクトをPOCOクラスとして定義し、オプションで属性をパブリック・プロパティーに適用して、データ・タイプのカスタム検証要件を定義します。
検証は、クライアントがサーバーにデータを送信する前にクライアントで行われ、サーバーがデータを受信したときにもサーバー上で行われます。サーバーは、HTTP OPTIONS要求に応答してメタデータを出力し、指定されたビジネス・オブジェクトに定義されたバリデーターについてクライアントのJavaScriptライブラリーに通知します。
基本的なバリデータ
基本的なバリデータ
Sitecore.Services.Client次のバリデーターを提供します。
次のコード スニペットは、ビジネス・オブジェクトの公開プロパティーに属性を適用してデータ検証をサポートする方法を示しています。
検証の拡張
検証の拡張
検証メカニズムを拡張し、新しいバリデータを定義して、これらをビジネスオブジェクトタイプに適用することができます。
Sitecore.Services.Clientのバリデーターの基本セットに加えて、contribプロジェクトがあります。このプロジェクトには、メールアドレスのチェックをサポートするバリデーター拡張機能の例が含まれています。このプロジェクトはhttps://github.com/Sitecore-Community/Sitecore.Services.Contribで見つけることができます。
新しいバリデータータイプを定義する
新しいバリデータを定義するには、型のサーバー側の実装とクライアント側の検証スクリプトを提供します。
サーバー側の実装
-
System.ComponentModel.DataAnnotations.ValidationAttributeから派生するクラスを作成してバリデーターを定義し、カスタム検証ロジックを実装します。
MSDNの記事「 方法: カスタム属性を使用してデータ モデルでデータ フィールドの検証をカスタマイズする 」には、有用な情報が含まれています。
-
メタデータ エミッタを定義するには、Sitecore.Services.Core.MetaData.ValidationMetaDataBase<T> ( <T> がバリデータの種類) から派生するクラスを作成します。仮想メソッドDescribe(ValidationAttribute attribute, string filedName) をオーバーライドして、OPTIONS要求に応答して出力されるメタデータをカスタマイズできます。
例えば:
Sitecore.Services.Clientデフォルトでは、IValidationMetaDataProviderのAssemblyScannerValidationMetaDataProvider実装を使用します。アプリケーションの起動時に、このクラスはWebサイトのbinフォルダー内のアセンブリをスキャンして、検証メタデータを提供する型を探します。
ビジネス オブジェクトに検証属性を指定し、検証のメタデータを提供する対応するタイプが見つからない場合は、属性が検出されるとSitecoreログに警告が書き込まれ、EntityServiceは属性を無視します。
クライアントの実装
EntityServiceと対話するJavaScriptライブラリは、クライアント側の検証を機能させるために、サイト内のすべてのバリデーターの処理方法を知っている必要があります。カスタム検証ツールを追加するときは、検証ロジックのクライアント側の実装を提供する必要があります。
クライアント側の検証ロジックは、Sitecore.Extensions.Validation.FolderPath構成設定で指定されたフォルダーのJavaScriptファイルに配置します。デフォルト設定は \sitecore\shell\client\Services\Assets\lib\extensions\validatorsです。
EntityService JavaScriptライブラリは、サービス メタデータ応答でカスタム バリデーターに初めて出会うと、MetaDataScriptコントローラー (sitecore/api/ssc/script/metadata) を呼び出して、その検証属性のクライアント側ロジックを含むJavaScriptファイルを取得します。