レイアウト サービス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore レイアウト サービスは、Sitecore レイアウト情報を構造化された JSON (JavaScript Object Notation) データとして公開する Sitecore ヘッドレス サービスのエンドポイントです。
このサービスは、Sitecore レンダリング エンジンを使用して構造化された JSON 出力を生成し、レイアウトからレンダリングを切り離します。このサービスを使用すると、JSON データを使用可能なすべてのフロントエンド テクノロジー スタックで Sitecore コンポーネントをレンダリングすることができます。
REST または GraphQL エンドポイントを使って、レイアウト サービスからデータをフェッチできます。GraphQL エンドポイントに関するドキュメントについては、「[en] Sitecore Experience Edge for XM」を参照してください。
次の図は、 Sitecore からデカップルド フロントエンド アプリケーションへのレイアウト データの応答フローを示しています。
レイアウト サービスのアクション
レイアウト サービスは 2 つのアクションを公開します。
-
アイテムのレイアウト全体の出力を取得します。
-
特定のプレースホルダーの出力を取得します。
レイアウト サービスのパスはサイトのホーム アイテムへの相対パスであるため、目的のサイト コンテキストを解決するには、sc_site
クエリ文字列パラメーターまたはホスト名を使ってレイアウト サービスを呼び出します。
アイテムのレイアウト全体の出力の取得
アイテムの完全なレイアウト出力を取得するには、レイアウト サービスの render
エンドポイントを呼び出す必要があります。
/sitecore/api/layout/render/[config]?item=[path]&sc_lang=[language]&sc_apikey=[key]&tracking=[true|false]&sc_site=[your-site-name]
使用可能なパラメーターは次のとおりです。
パラメーター |
説明 |
---|---|
|
使用するレイアウト サービス設定の名前。JSS の場合、これは通常 jss です。 |
|
コンテキスト サイトのホーム アイテムまたはアイテム GUID (ID) へのアイテムの相対パス。 |
|
取得するアイテムの言語バージョン。 |
|
レイアウト サービス コントローラー ( |
|
データをフェッチするサイトの名前。レイアウト サービス呼び出しに含める分析追跡に必要。 |
|
(オプション、Sitecore XP のみ) レイアウト サービス呼び出しの分析追跡を有効または無効にします。既定は |
特定のプレースホルダーの出力の取得
このアクションは、アプリがレイアウトの一部にアクセスする必要がある特別な状況で役立ち、処理されネットワーク経由で送信されるデータの量を最小限に抑えます。
/sitecore/api/layout/placeholder/[config]?placeholderName=/main&item=[path]&sc_lang=[language]&sc_apikey=[key]&tracking=[true|false]
このアクションは前に説明した /render
アクションと同じパラメーターに加えて、次のパラメーターも受け入れます。
パラメーター |
説明 |
---|---|
|
レンダリングするプレースホルダーの名前。このパラメーターの値はコンテンツ エディターのレイアウトの詳細から取得できます。 |
xDB の破損したページ訪問データから placeholder
アクションが呼び出されるのを防ぐためにこのアクションを使用する場合、tracking=false
を追加します。
レイアウト サービス要求の詳細
レイアウト サービスが /sitecore/api/layout/render/jss?item=/about
などの要求を受け取ると、サーバー上では次のプロセスが実行されます。
jss
はレイアウト サービスの名前付き設定を表します。独自の名前付き設定を登録して、アプリケーション固有のレイアウト サービス拡張機能を作成することができます。「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 フィールドとレイアウト サービスのフィールド シリアライザー
レイアウト サービスは次のタイプの Sitecore フィールドをシリアル化できます。
-
リッチ テキスト
-
画像
-
通常のリンク
-
日付 / 日時
-
チェックボックス
-
リンク (Droplink、Droptree、Grouped Droplink)
-
マルチリンク (Multlist、Checklist、Treelist、Exten およびそれらのバリアント)
-
数値
-
ファイル
-
プレーン テキスト (1 行テキスト、複数行テキスト)
他のすべてのフィールド タイプはプレーン テキストとして扱われ、そのままの値で出力されます。
レイアウト サービスと Sitecore のプレースホルダー
アイテムの完全に構造化されたレイアウト データを返すには、レイアウト サービスがレンダリングのプレースホルダーを認識している必要があります。
これらのパブリッシュされたプレースホルダーを検出可能にするには、レイアウト サービス プレースホルダー フィールドが入力されている必要があります。
これは、プレースホルダーに追加できるレンダリングを定義するプレースホルダー設定の関連付けられたコントロールとは異なります。レイアウト サービス プレースホルダー フィールドは、フロントエンド レンダリング ホスト内で使用するプレースホルダーを定義します。
ダイナミック プレース ホルダー キー
既定で、レイアウト サービスは、ルート プレースホルダー (通常は main
) 以外のすべてのプレースホルダーは動的なプレースホルダーであると想定し、Sitecore の組み込みダイナミック プレースホルダー ロジックを使用して、レンダリングするプレースホルダー キーを決定します。
レイアウト サービスと Sitecore Experience Platform 分析
レイアウト サービスは、Sitecore MVC レンダリング エンジン内で実行され、すべての Sitecore 分析の追跡と機能を保持します。
フロントエンド アプリケーションまたは特定のレイアウト サービス呼び出しの分析追跡を行わない場合は、tracking
パラメーターを false
に設定します。