エンティティサービスのRESTful APIの使用
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
EntityServiceを使ってサーバー上でカスタムコントローラークラスを作成します。これらのクラスはHTTP経由でアクセス可能です。
Sitecore.Services.Infrastructure.Web.Http.DefaultRouteMapperこれらのカスタムコントローラークラスにアクセスするためのデフォルトルートを提供します。このルートとWeb API用の カスタムコントローラーセレクター は、ウェブサイトのアプリケーション起動時に設定されます。
デフォルトルーティング
EntityServiceとして機能するカスタムコントローラークラスは、一意なURLを通じてアドレス指定可能でなければなりません。この要件を満たすには、対象となるカスタムコントローラークラスの完全修飾型名からURLを導出します。
EntityServiceクラスに適用されるルート定義は以下の通りです:
{namespace}/{controller}/{id}/{action}
ここで:
- IDはオプションのパラメータです。
- アクションはコントローラーで呼び出したいメソッドの名前です。
HTTP動詞のマッピング
すべてのEntityServiceエンドポイントは以下のHTTP動詞に応答します:
- GET – EntityServiceのFetchEntityメソッド(idパラメータが提供されている場合)またはFetchEntitiesメソッド(idパラメータが提供されていない場合)にマッピングされます。
- POST – EntityServiceのCreateEntityメソッドにマッピングします。
- PUT – EntityServiceのUpdateEntityメソッドにマッピングされます。
- DELETE – EntityServiceのDeleteメソッドにマッピングされます。
- OPTIONS – エンティティサービスのメタデータメソッドにマッピングします。
タイプ名をURLにマッピングする
Sitecore.Services.Clientコントローラクラスのフル型名を使い、受信するHTTPリクエストをデフォルトでEntityServiceエンドポイントにマッピングします。
このプロセスの鍵となる2つのルートパラメータは{namespace}と{controller}です。ルート定義の非選択的な部分は以下の通りです:
{namespace}/{controller}
ここで:
- {namespace}はクラス名の名前空間から派生し、「.」文字を「-」に変換しています。文字。
- {controller}は、 Controller の接尾辞なしのクラス名です。これはコントローラ命名のMVCの慣例に従います。
例えば、My.Namespace.ProductController限定型名はmy-namespace/product URLに対応します。
カスタムコントローラーアクションルーティング
EntityServiceコントローラークラスにカスタムアクションメソッドを追加できます。 Sitecore.Services.ClientリクエストのURLに{id}および{action}パラメータを指定すると、自動的に適切なアクションメソッドにルーティングされます。
これは {namespace}/{controller}/{id}/{action} ルートを使用します。デフォルトのルーティング構成では、{id} パラメータ({namespace}/{controller}/{action} ルート)を提供しないリクエストはサポートしていません。
構成
Sitecore.Services.Client.config includeファイルには以下の設定オプションが含まれています:
舞台設定
概要
Sitecore。サービス。ルートマッパー
Sitecore。Services.RouteMapperの設定は、Sitecoreを指定します。Services.Infrastructure.Web.Http.IMapRoutes の派生型は、 Sitecore.Services.Clientのルートを設定するものです。
この設定のデフォルト値は Sitecore.Services.Infrastructure.Web.Http.DefaultRouteMapper、 Sitecore.Services.Infrastructureです。
サービスエンドポイントステム
すべてのEntityServiceコントローラーは単一のURLの下に設置されています: Sitecore/api/ssc/。
名前空間のルーティングオーバーライド
ServicesControllerAttributeクラスはUniqueNameパラメータを取るコンストラクタを提供します。UniqueNameパラメータを使って{namespace}と{controller}のルーティングデータ値を明示的に指定します。この方法でデフォルトの「名前をURLにタイプする」メカニズムを上書きできます。
以下の例は、UniqueNameパラメータ値がコントローラーにアクセスするURLにどのようにマッピングされるかを示しています。
ユニークネーム
URL
product
product
company.product
company.product
company/product
company.product
long.company.product
long-company/product
long/company/product
long-company/product
long.company/product
long-company/product
{namespace}と{controller}の両方の部分を提供しない一意名は{namespace}/{controller}/{action}ルートで処理されず、HTTP 404応答を生成することがあります。
ルーティングの概要については、「 ASP.NET Web APIのルーティング」を参照してください。