1. Commerce Engineの方針

設定データ入力を制御するための検証ポリシーを追加してください

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Commerce EngineはPlugin.Validation.PolicySet(the-plugin-validation-policyset.md "The Plugin.Validation.PolicySet") JSONファイル内に複数のデフォルト検証ポリシーをあらかじめ定義し、データ入力値を検証します。ポリシーセットファイルを更新してカスタム検証ポリシーを追加したり、既存のポリシーを変更したりして特定のビジネスルールを強制し、データの整合性を確保することができます。

検証ポリシーは、Business Toolsインターフェースで入力されたデータおよびAPIリクエストで入力されたデータに適用されます。

以下の手順は、ショッピングカートの命名規則の例を強制するための新しいカスタム検証ポリシーを追加する方法を示しています。

  • カート名は英数字の文字のみを含められます。
  • カート名の長さは4文字から10文字の間でなければなりません。

カスタム検証ポリシーを追加するには:

  1. Commerce Engineのサービスインスタンスで、wwwroot\data\Environments\Plugin.Validation.PolicySet-1.0.0.jsonファイルを開いてください。

  2. ファイルの一番下に行き、以下のサンプルに示されているポリシーを追加します。

    • "TypeFullName"は、検証すべきプロパティ値を定義するCartエンティティクラスの名前空間に対応します。
    • "Name"プロパティは検証対象のエンティティプロパティ値の名前であり、この場合はプロパティ"Name"カートです。
    • "MinLength"プロパティは、"Name"値が有効であるために必要な最低文字数を強制します。
    • "MaxLength"プロパティは、"Name"値が有効であるために許される最大文字数を強制します。
    • "RegexValidator"プロパティは、英数字文字のみを許容する正規表現を定義します。
    • "RegexValidatorErrorCode"値は、エラーメッセージが定義されるCommerce Termを指します。

    { "$type": "Sitecore.Commerce.Core.ValidationPolicy, Sitecore.Commerce.Core", "TypeFullName": "Sitecore.Commerce.Plugin.Carts.Cart",, "Models": { "$type": "System.Collections.Generic.List`1Sitecore.Commerce.Core.Model, Sitecore.Commerce.Core, mscorlib", "$values": { "$type": "Sitecore.Commerce.Core.ValidationAttributes, Sitecore.Commerce.Core", "Name": "Name", "MinLength": 4, "MaxLength": 10, "RegexValidator": "^\\w\\s*$", "RegexValidatorErrorCode": "AlphanumericOnly_NameValidationError" }

    } }

  3. Bootstrap the Commerce Engine(商取引エンジン)を導入してください。

    !注ブートストラップが完了したら、Send Sample Request Get Environmentを使い、返送された回答に自分の変更が含まれているか確認できます。

  4. オプションで、Commerce Engineが期待されるエラーメッセージを返すことを確認するために、無効なPostmanリクエストを送信することもできます。 Add Mira Laptopサンプルリクエストでは、"CartId" 入力値を無効な文字(例えば "Cart01!")を含め、感嘆符が正規表現バリデーターに拒否される形に変更してください。

    返送された回答の "Messages" セクションには以下のエラーメッセージが含まれています:

    "Messages":          {             "MessageDate": "2021-07-28T15:`15

    `.7992017Z",             "Code": "ValidationError",             "Text": "Only alphanumeric characters are allowed in the Name.",             "CommerceTermKey": "AlphanumericOnly_NameValidationError"         },         {             "MessageDate": "2021-07-28T15:`15
    `.803528Z",             "Code": "Warning",             "Text": "Transaction failed and rolled back.",             "CommerceTermKey": "TransactionError"         }

    !注あるいは、\wwwroot\CommerceEngineServic>\wwwroot\logsフォルダにあるCommerce Engineのログファイルを確認することもできます。

この記事を改善するための提案がある場合は、 お知らせください!