Configuration options for the Layout Service
Change the maximum depth for serialization, include or exclude paths, and more.
When you want to modify the behavior of the Layout Service, you can use configuration files to change the maximum depth for serialization, include or exclude paths, and more.
The Layout Service configuration accepts the following attributes:
serializableRenderingTypes
.serializationMaxDepth
.paths
.configurations
.
You can use the serializableRenderingTypes
attribute to define the list of rendering IDs that can be present as JSON while getting the rendering result.
For example:
<layoutService> <serializableRenderingTypes> <sublayout>{0A98E368-CDB9-4E1E-927C-8E0C24A003FB}</sublayout> <viewRendering>{99F8905D-4A87-4EB8-9F8B-A9BEBFB3ADD6}</viewRendering> <controllerRendering>{2A3E91A0-7987-44B5-AB34-35C2D9DE83B9}</controllerRendering> <xslRendering>{F1F1D639-4F54-40C2-8BE0-81266B392CEB}</xslRendering> <jsonRendering>{04646A89-996F-4EE7-878A-FFDBF1F0EF0D}</jsonRendering> </serializableRenderingTypes> </layoutService>
You can specify the maximum depth for items retrieved in linked fields with the serializationMaxDepth
attribute. The default value is 4.
For example:
<layoutService> <serializationMaxDepth>4</serializationMaxDepth> </layoutService>
You can use the excludePaths
element to specify excluded paths.
For example:
<layoutService> <paths> <excludePaths> <path id="1">/sitecore/system</path> <path id="2">/sitecore/templates</path> <path id="3">/sitecore/layout</path> <path id="4">/sitecore/media library</path> <path id="5">/sitecore/social</path> </excludePaths> </paths> </layoutService>
Using the configurations
node, you can define named configurations that allow overriding the default Layout Service behavior.
For example:
<layoutService> <configurations> <config name="default"> <requestContext type="Sitecore.LayoutService.Configuration.DefaultRequestContext, Sitecore.LayoutService"> <databaseName>master</databaseName> </requestContext> <rendering type="Sitecore.LayoutService.Configuration.DefaultRenderingConfiguration, Sitecore.LayoutService"> <placeholdersResolver type="Sitecore.LayoutService.Placeholders.DynamicPlaceholdersResolver, Sitecore.LayoutService" /> <itemSerializer type="Sitecore.LayoutService.Serialization.ItemSerializers.DefaultItemSerializer, Sitecore.LayoutService" resolve="true"> <AlwaysIncludeEmptyFields>true</AlwaysIncludeEmptyFields> </itemSerializer> <renderingContentsResolver type="Sitecore.LayoutService.ItemRendering.ContentsResolvers.RenderingContentsResolver, Sitecore.LayoutService"> <IncludeServerUrlInMediaUrls>true</IncludeServerUrlInMediaUrls> </renderingContentsResolver> </rendering> <serialization type="Sitecore.LayoutService.Configuration.DefaultSerializationConfiguration, Sitecore.LayoutService"> <transformer type="Sitecore.LayoutService.Serialization.LayoutTransformer, Sitecore.LayoutService" resolve="true" /> </serialization> </config> </configurations> </layoutService>