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