EntityServiceを作成する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
EntityServiceを使用して、カスタムビジネスオブジェクトと対話します。
Sitecoreはビジネス オブジェクトを提供しません。EntityServiceのビジネス・オブジェクトを実装するかどうかはユーザー次第ですが、EntityServiceの実装は、必要なビジネス・オブジェクトを簡単に実装するためのスキャフォールディングを提供します。
EntityServiceは、クライアント側のJavaScriptから、またはRESTful APIを介して使用できます。
このトピックでは、次の方法について説明します。
EntityServiceを作成する
EntityServiceを作成する
EntityServiceを作成するには:
-
ビジネスオブジェクトを表すクラスを作成します。このクラスはSitecore.Services.Model.EntityIdentityから派生させる必要があります。必要な検証属性を追加します。
-
ビジネス・オブジェクトを永続化するためのクラスを作成します。このクラスは、Sitecore.Services.Core.IRepository<T> インターフェイスを実装する必要があります。
-
Sitecore.Services.Infrastructure.Sitecore.Services.EntityServiceBaseから派生したコントローラー・クラスを作成します。ここで、はステップ1で作成したビジネス・オブジェクト・タイプT。このクラスをServicesController属性で修飾する必要があり、パラメータのないコンストラクタを持つ必要があります。
次の例は、サービス・コントローラーの定義を示しています。
EnableCors属性はオプションです。
ビジネス オブジェクトをSitecoreに保存する
ビジネス オブジェクトをSitecoreに保存する
コントローラ・クラス (ビジネス・オブジェクトをHTTP経由でサーバーに配信する) とリポジトリ・クラス (ビジネス・オブジェクトを格納する永続性ロジックを実装する) の間で、懸念事項を分離できます。
リポジトリ クラスをSitecoreに関連付ける必要はありません。JavaScriptとHTTPのプラミング コードを使用してビジネス オブジェクトをサーバーに移動し、これらのオブジェクトをサード パーティのデータベースまたはその他のサブシステムに格納するEntityServiceを定義できます。
Sitecore.Services.Contribプロジェクトは、Sitecoreコンテンツ ツリーにビジネス オブジェクトを保存する場合に使用できる基本クラスを提供します。このクラスは、独自のカスタム・リポジトリ・クラスを実装するための開始点となります。
Sitecoreにビジネス オブジェクトを保存するには:
-
カスタムリポジトリクラスを作成し、Sitecore.Services.Contrib.Data.SitecoreItemRepository<T>から派生させます。
-
次の抽象メソッドと仮想メソッドを実装して、ビジネス オブジェクトのプロパティとアイテムのフィールドとの間にマップするコードを提供します。
Sitecore.Services.Contrib.Data.SitecoreItemRepository<T> クラスは、masterデータベース内のSitecoreアイテムを操作します。
Sitecoreテンプレート タイプとコンテンツ ルートを指定して、アイテムをコンストラクター パラメーターとして保存するには、次のようにSitecore.Services.Contrib.Data.SitecoreItemRepository<T> 派生タイプを作成します。
カスタムメソッドを追加する
カスタムメソッドを追加する
-
カスタムアクションメソッドをコントローラークラスに追加できます。これらは、リクエストが {namespace}/{controller}/{id}/{action} ルートと一致するときに選択されます。