ODataコンプライアンス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Experience Commerce (XC) リリース10.0以降は、Microsoft.AspNetCore.Odataバージョン7.3.1に基づいています。
Commerce Service APIは、Open Data Protocol (OData) に基づいています。ODataは、外部システムがコマース機能とデータ構造を検出できるようにするメタデータを提供します。ODataはメタデータの注釈もサポートしており、基本的な検証要件と列挙型が提供されるため、よりスマートなクライアントは列挙可能なプロパティのドロップダウンサポートを事前検証できます。
ほとんどのMicrosoft製品は、ODataをネイティブに使用できます。たとえば、ExcelはODataソースに接続できるため、Power Pivotやその他のExcelベースの分析ツールを簡単に統合できます。Microsoft Dynamics AXを含むその他のMicrosoft製品は、サービス レイヤーでODataをサポートしています。
コント ローラー
Sitecore XCコントローラーはODataControllerクラスから継承します。基本クラスはCommerceODataControllerで、次の例に示します。
ODataルート
ODataRoutesは、ODataRoute属性とODataRoutePrefix属性を使用します。
ODataRoute属性
ODataRoute属性は、次のようなコントローラーアクションを定義します。
RouteNameを指定しない場合、アクションはCommerceAPIルートとCommerceOpsルートの両方で使用できます。
展開フィルターが2レベル以上使用されるGETアクションでは、EnableQuery属性で "MaxExpansionDepth = 0" を使用することをお勧めします。
コントローラー アクションのODataRoute属性の例
次のアクションは、CommerceOpsルートを通じてonly 使用できます。
次のアクションは、CommerceAPIルートを通じてonly使用できます。
次のアクションはルートを指定しないため、CommerceAPIルートとCommerceOpsルートの両方で使用できます。
ODataRoutePrefix属性
エンティティODataコントローラーの場合、ODataRoutePrefix属性は、そのコントローラーのすべてのアクションに使用されるプレフィックスを指定します。 ODataRoutePrefix属性値は、エンティティセット名と一致する必要があります。
次の例では、ODataRoutePrefixは として定義されたエンティティセットに基づいていますarg.EntitySet<CommerceEnvironment>("Environments")
ODataモデル ビルダー
ODataConventionModelBuilderは厳密な検出メカニズムを使用します。検出メカニズムはより厳密であるため、IEdmModelにクラスを追加する必要があります。
XCは、次のパイプラインを使用してIEdmModelをビルドします。
-
IConfigureServiceApiPipeline
-
IConfigureOpsServiceApiPipeline
派生クラスの検出を容易にするために、ODataConventionModelBuilderの次の拡張機能を使用できます。
-
AddCommerceComplexType: この拡張機能は、CLRクラスとそのすべての派生クラスをComplexTypes.このアクションは、CommerceAPIルートとCommerceOpsルートの両方で使用できます。
例えば:
-
AddCommerceEntity: この拡張機能は、CLRクラスをマップし、その派生クラスをエンティティとしてallします。例えば: