エンティティサービスのRESTful APIの使用

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

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

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