getLayoutServiceContextパイプラインを拡張する
Version: 22.x
日本語翻訳に関する免責事項
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
レイアウト サービスによって提供されるgetLayoutServiceContextパイプラインを拡張することで、標準のプロパティを有効または無効にしたり、独自のデータをcontextオブジェクトに追加したりできます。
getLayoutServiceContextパイプラインを拡張するには:
-
ヘッドレスサービスが提供するJssGetLayoutServiceContextProcessorベースを拡張して、プロセッサを作成します。
メモヘッドレス サービスの外部でレイアウト サービスのコンシューマーが拡張機能を利用できるようにする場合は、Sitecore.LayoutService.ItemRendering.Pipelines.GetLayoutServiceContext.IGetLayoutServiceContextProcessorインターフェイスを実装できます。
RequestResponsepublic class ExampleContextExtension : Sitecore.JavaScriptServices.ViewEngine.LayoutService.Pipelines.GetLayoutServiceContext.JssGetLayoutServiceContextProcessor { public ExampleContextExtension(IConfigurationResolver configurationResolver) : base(configurationResolver) { } protected override void DoProcess(GetLayoutServiceContextArgs args, AppConfiguration application) { args.ContextData.Add("securityInfo", new { isAnonymous = !Sitecore.Context.User.IsAuthenticated }); } }
-
プロセッサにパッチを適用して構成するには、次の例に示すように、プロセッサの構成パッチを作成し、プロセッサを実行する必要があるアプリやルートを構成します。
RequestResponse<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <pipelines> <group groupName="layoutService"> <pipelines> <getLayoutServiceContext> <processor type="SitecoreJss.Examples.ExampleContextExtension, SitecoreJss.Examples" resolve="true"> <AllowedConfigurations hint="list"> <!-- Unless you change the Layout Service config used by your JSS app, this should always be present. --> <jss>jss</jss> </AllowedConfigurations> <Applications hint="list"> <!-- Restrict the JSS apps for which this processor will execute. --> <reactApp>JssReactWeb</reactApp> </Applications> <Routes hint="list"> <!-- Restrict the route items for which this processor will execute. IDs, item paths, and wildcard item paths are allowed. --> <services>/sitecore/content/JssReactWeb/Home/Services*</services> <portfolio>{BAD2C001-1746-4312-8422-B28806A1191E}</portfolio> </Routes> </processor> </getLayoutServiceContext> </pipelines> </group> </pipelines> </sitecore> </configuration>
-
変更されたコンテキストの出力を確認するには、レイアウトサービスエンドポイントを次のhttp://{YOUR_SITECORE_HOST}/sitecore/api/layout/render/jss?item=/Services&sc_apikey={YOUR_API_KEY}呼び出します。
RequestResponse"context": { "securityInfo": { "isAnonymous": true }, "pageEditing": false, "site": { "name":"JssReactWeb" }, "navigation": [ { "name":"Home", "path":"/", "children": [ { "name":"About", "path":"/about" }, { "name":"Portfolio", "path":"/portfolio" }, { "name":"Services", "path":"/services" } ] } ] }