getLayoutServiceContextパイプラインを拡張する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
レイアウトサービスが提供するgetLayoutServiceContextパイプラインを拡張することで、標準プロパティを有効化・無効化したり、自分のデータをcontextオブジェクトに追加したりできます。
getLayoutServiceContextパイプラインを拡張するには:
-
Headless Servicesが提供するJssGetLayoutServiceContextProcessorベースを拡張してプロセッサを作成する:
!注Headless Services以外でレイアウトサービスの利用者に拡張機能を提供したい場合は、Sitecore.LayoutService.ItemRendering.Pipelines.GetLayoutServiceContext.IGetLayoutServiceContextProcessorインターフェースを実装できます。
public 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 }); } }
-
プロセッサにパッチを当て設定するには、プロセッサ用の設定パッチを作成し、プロセッサが実行すべきアプリやルートを設定してください。以下の例で示されています。
jss JssReactWeb /sitecore/content/JssReactWeb/Home/Services\* {BAD2C001-1746-4312-8422-B28806A1191E} -
修正されたコンテキストの出力を確認するために、レイアウトサービスのエンドポイントを呼び出しhttp://{YOUR_SITECORE_HOST}/sitecore/api/layout/render/jss?item=/Services&sc_apikey={YOUR_API_KEY}:
"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" }
}
}