1. Sitecore.Services.クライアント

EntityServiceのRESTful APIの使用

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

このページの翻訳は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.ProductControllermy-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.DefaultRouteMapperSitecore.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でのルーティング」を参照してください。

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