レイアウトサービス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecoreレイアウト サービスは、Sitecoreレイアウト情報を構造化されたJavaScript Object Notation (JSON) データとして公開するSitecoreヘッドレス サービス エンドポイントです。
このサービスでは、Sitecoreレンダリング エンジン を活用して構造化されたJSON出力を生成し、layoutとrenderingを分離し、JSONデータを消費できる任意のフロントエンド テクノロジー スタックでSitecoreコンポーネントをレンダリングできるようにします。
レイアウトサービスからデータを取得するには、RESTまたはGraphQLエンドポイントを使用します。GraphQLエンドポイントに関するドキュメントについては、「 Sitecore Experience Edge for XM」を参照してください。
次の図は、Sitecoreから分離されたフロントエンド アプリケーションへのレイアウト データ応答フローを示しています。
レイアウト サービス アクション
レイアウト サービスでは、次の2つのアクションが公開されます。
-
アイテムのレイアウト全体の出力を取得します。
-
特定のプレースホルダーの出力を取得します。
目的のサイト コンテキストに解決するには、sc_siteクエリ文字列パラメーターを使用するか、レイアウト サービス パスがサイトのHomeアイテムに対して相対的であるため、ホスト名を使用してレイアウト サービスを呼び出します。
アイテムのレイアウト全体の出力を取得する
アイテムの完全なレイアウト出力を取得するには、レイアウト サービスのrenderエンドポイントを呼び出す必要があります。
使用可能なパラメータは次のとおりです。
|
パラメーター |
形容 |
|---|---|
|
config |
使用するレイアウト サービス構成の名前。JSSの場合、通常はjssです。 |
|
item |
コンテキスト サイトのホーム アイテムまたはアイテムGUID (ID) を基準としたアイテムへのパス。 |
|
sc_lang |
取得するアイテムの言語バージョン。 |
|
sc_apikey |
レイアウトサービスコントローラ(Sitecore.LayoutService.Mvc.Controllers.LayoutServiceController、Sitecore.LayoutService.Mvc)で使用するように設定されたSSC APIキー。APIキーは、クエリ文字列に必要であるか、sc_apikey HTTPヘッダーを介して送信されます。 |
|
sc_site |
データを取得するサイトの名前。Layout Serviceの呼び出しに含まれる分析トラッキングに必要です。 |
|
tracking |
(オプション、Sitecore XPのみ。レイアウト・サービス呼び出しの分析トラッキングを有効/無効にします。デフォルトはtrueです。 |
特定のプレースホルダーの出力を取得する
このアクションは、アプリがレイアウトの一部にアクセスする必要がある特別な状況で、処理およびネットワーク経由で送信されるデータの量を最小限に抑える必要がある場合に便利です。
このアクションは、前述の /renderアクションと同じパラメーターに加えて、次のパラメーターを受け入れます。
|
パラメーター |
形容 |
|---|---|
|
placeholderName |
レンダリングするプレースホルダーの名前。このパラメータの値は、コンテンツ エディタのレイアウトの詳細から取得できます。 jss設定には動的プレースホルダーが標準で使用されるため、ここでは動的プレースホルダー形式を使用する必要があります。 |
このアクションを使用する場合は、placeholderアクションの呼び出しによってxDBのページ アクセス データが破損するのを防ぐために、tracking=falseを追加します。
レイアウト サービス要求の構造
レイアウトサービスがリクエスト ( /sitecore/api/layout/render/jss?item=/aboutなど) を受信すると、サーバー上で次のプロセスが発生します。
jssは、レイアウト サービスのnamed configurationを表します。独自の名前付き構成を登録して、アプリケーション固有のレイアウト サービス拡張機能を作成できます。JSSでのカスタムレイアウトサービス設定の使用を参照してください。
-
MVCコントローラーが応答し、?item=/aboutパラメーターを解析します。
-
レイアウト サービスは、コンテキスト サイトの開始アイテムを考慮に入れたitemパラメーターに基づいてアイテムの検索を実行します。ロジックは、標準のSitecore URL処理と一致します。アイテムのGUIDも使用できます。
-
アイテムを解決した後、レイアウト サービスは、レイアウト定義アイテムとレンダリング定義アイテムのプレースホルダー データを使用して、mvc.renderPlaceholderパイプラインを利用してアイテムをオブジェクト構造にレンダリングします。Sitecore MVCパイプラインを使用すると、レイアウト サービスの出力は、アイテムのレイアウト定義のパーソナライゼーション ルールやコンテンツ テストを考慮します。
-
MVCビューをレンダリングする代わりに、カスタムJavaScriptシリアライザーはコンポーネントのデータ ソース項目を取得し、それらをJavaScriptオブジェクトにシリアル化します。
手記レンダリングのシリアル化された出力をカスタマイズするには、Sitecore.LayoutService.ItemRendering.IRenderingContentsResolverの実装を作成し、レンダリングのRendering Contents Resolverフィールドにタイプを指定します。
-
その後、出力はアセンブルされ、JSONとして返されます。
レイアウトサービスデータ
レイアウト サービスは、要求されたSitecoreアイテムに関する次のJSON形式の構造化データを提供します。
-
フィールド値とメタデータ (アイテムのIDとテンプレートを含む)。
-
プレースホルダーとそのレンダリングは、レイアウト内の親子関係を示すネストされたツリー構造で示されます。これにより、クライアントのレンダリング ロジックが大幅に簡略化されます。
-
レンダリングに関連付けられたシリアル化されたコンテンツ。デフォルトでは、これはレンダリングのデータソースアイテムです。
-
Sitecoreフィールドをフィールド タイプに基づいて構造化されたJSONにレンダリングし、フィールド値とメタデータ (画像の代替テキストなど) を構造化して使用できるようにします。
-
カスタマイズ可能なコンテキストデータで、レンダリングに便利です。たとえば、現在のサイト、ユーザー、編集モードなどのSitecore.Contextからのデータです。
編集モードで起動すると、レイアウト サービスには、次のようなインライン編集をサポートするデータが含まれます。
-
インライン編集用のエディターマークアップを使用してレンダリングされたフィールド。
-
レンダリングとプレースホルダーの追加マークアップにより、インライン エディターで編集コントロールを挿入できます。
SitecoreフィールドとLayout Serviceフィールド シリアライザー
レイアウト サービスは、次のタイプのSitecoreフィールドをシリアル化できます。
-
リッチテキスト
-
画像
-
一般リンク
-
日付 / 日時
-
チェックボックス
-
リンク(Droplink、Droptree、Grouped Droplink)
-
マルチリンク(Multlist、Checklist、Treelist、Extenおよびそれらのバリアント)
-
数
-
ファイル
-
プレーンテキスト (1行テキスト、複数行テキスト)
他のすべてのフィールドタイプもプレーンテキストとして扱われ、未加工の値で出力されます。
レイアウト サービスとSitecoreプレースホルダー
アイテムの完全に構造化されたレイアウト データを返すには、レイアウト サービスがレンダリング上のプレースホルダを認識している必要があります。
これらの公開されたプレースホルダーを検出可能にするには、Layout Service Placeholdersフィールドに入力する必要があります。
これを、プレースホルダーに追加できるレンダリングを定義するPlaceholder SettingsのAllowed Controlsと混同しないでください。Layout Service Placeholdersフィールドは、フロントエンドレンダリングホスト内で使用するプレースホルダーを定義します。
ダイナミックプレースホルダーキー
デフォルトでは、レイアウト サービスは、ルート プレースホルダー (通常はmain) 以外のすべてのプレースホルダーを動的プレースホルダーと見なし、Sitecoreの組み込みの動的プレースホルダー ロジックを使用して、レンダリングするプレースホルダー キーを決定します。
レイアウトサービスとSitecore Experience Platform Analytics
レイアウト サービスはSitecore MVCレンダリング エンジン内で実行され、Sitecore分析の追跡と機能はすべて保持されます。
フロントエンド アプリケーションや特定のLayout Service呼び出しを分析で追跡しない場合は、trackingパラメーターをfalseに設定します。

