Rendering and Delivery

Last update: 2023-05-03
  • Topics:
  • Mobile
    View more on this topic
  • Created for:
  • User

AEM 6.4 has reached the end of extended support and this documentation is no longer updated. For further details, see our technical support periods. Find the supported versions here.


Adobe recommends using the SPA Editor for projects that require single page application framework-based client-side rendering (e.g. React). Learn more.

AEM content can easily be rendered via Sling Default Servlets to render JSON and other formats.

Those out-of-the-box renders typically walk the repository and return content as is.

AEM, via Sling, also supports developing and deploying custom sling renderers to take full control of the rendered schema and content.

Content Services Default Renderers fill the gap between out-of-the-box Sling Defaults and Custom Development allowing customization and control of many aspects of the rendered content without development.

The following diagram shows the rendering of content services.


Requesting JSON

Use <RESOURCE.caas[.<EXPORT-CONFIG][.<DEPTH-INT>].json to request JSON.

RESOURCE an entity resource under /content/entities
a content resource under /content


an export configuration found under /apps/mobileapps/caas/exportConfigs/EXPORT-CONFIG

If omitted the default export configuration will be applied


depth recursion for rendering of children as used in Sling rendering

Creating Export Configs

Export configs can be created to customize JSON rendering.

You can create a configuration node under /apps/mobileapps/caas/exportConfigs.

Node Name Name of the configuration (for rendering selector)
jcr:primaryType nt:unstructured

The following table shows the properties of Export Configs:

Name Type Default (if, not set) Value Description
includeComponents String[] include everything sling:resourceType exclude details for nodes with specified sling:resourceType from JSON export
excludeComponents String[] exclude nothing sling:resourceType include details only for nodes with specified sling:resourceType from JSON export
excludePropertyPrefixes String[] exclude nothing Property prefixes exclude properties that start with specified prefixes from JSON export
excludeProperties String[] exclude nothing Property names exclude specified properties from JSON export
includeProperties String[] include everything Property names

if excludePropertyPrefixes set
this includes specified properties despite matching the prefix being excluded,

else (exclude properties ignored) only include these properties

includeChildren String[] include everything child names exclude specified children from JSON export
excludeChildren String[]

exclude nothing child names include only specified children from JSON export, exclude other
renameProperties String[]

rename nothing <actual_property_name>,<replacement_property_name> rename properties using replacements

Resource type export overrides

Create a configuration node under /apps/mobileapps/caas/exportConfigs.

name resourceTypeOverrides
jcr:primaryType nt:unstructured

The following table show the properties:

Name Type Default (if, not set) Value Description
<SELECTOR_TO_INC> String[] - sling:resourceType For the following sling resource types, don't return the deafult CaaS json export.
Return a customer json export by rendering the resource as;

Existing Content Services Export Configs

Content Services include two export configurations:

  • default (no config specified)
  • page (to render site pages)

Default Export Configuration

Content Services default export configuration will be applied if a config is specified in the requested URI.


Name Value
excludePropertyPrefixes jcr:,sling:,cq:,oak:,pge-
includeProperties jcr:text,text
Sling JSON Overrides foundation/components/image

Page Export Configuration

This configuration extend the default to include grouping children under a child node.


Additional Resources

See the resources below to learn about additional topics in Content Services:

On this page