Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: REST 2.1 updates

This page explains Use the delivery endpoint, which can be used API to obtain JCR data as JSON.

The endpoint provides two REST resources - readNode and queryNodes - both must be called with HTTP 

Mgnl get
.

The delivery endpoint must be configured via YAML. Its next version will allow multiple named configurations which can be distinguished by URL path parameter.

Table of Contents
maxLevel3
minLevel2

Methods

readNode

Returns one node including its properties and child nodes down to a certain depth.

Request URL

/delivery/{workspace}/v1/{path}

Parameters

...

highlightColor@default
multiplefalse
enableHeadingAttributesfalse
enableSortingfalse
enableHighlightingfalse

...

Parameter

...

Description

...

Data type

...

workspace

...

The name of the workspace.

...

string

...

path

...

The path relative to the rootPath defined in the configuration

...

string

Example

Get the 

queryNodes

..

...

YAML configuration

...

MultiExcerptNameconfiguration

The delivery endpoint requires a YAML configuration - otherwise it cannot deliver content. Version 2.0 of the magnolia-rest-content-delivery module can have only one configuration. (Future versions will allow multiple configurations which can be distinguished via URL parameter.)

Add the configuration to the folder restEndpoints in a light module or within src/main/resources/<module-name>/restEndpoints in a Magnolia Maven module.

Basic configuration

Code Pro
titlemy-endpoint.yaml
class: info.magnolia.rest.delivery.jcr.JcrDeliveryEndpointDefinition
implementationClass: info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpoint
params:
  website:
    depth: 3
    includeSystemProperties: false
    nodeTypes:
      - mgnl:page
      - mgnl:area
      - mgnl:component
    rootPath: /
  dam:
    depth: 1
    includeSystemProperties: false
    nodeTypes:
      - mgnl:asset
      - mgnl:folder
    rootPath: /travel-demoe

Properties:

...

required

Must be info.magnolia.rest.delivery.jcr.JcrDeliveryEndpointDefinition or a subclass.

...

required

Must be info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpoint or a subclass.

...

required

The map defining at least one ore more workspace parameters.

...

<workspace-name>

...

required

The name of the JCR workspace to deliver content from. You define as many workspaces as you need.

You define one workspace with the below properties. (The definiton class is

Javadoc resource link
classNameinfo.magnolia.rest.delivery.jcr.WorkspaceParameters
renderTypeasynchronous
).

...

nodeTypes*

...

required

An list of allowed node types.

...

depth*

...

optional (default=0)

The depth of subnodes to shwo in the result

...

includeSystemProperties

...

optional (default=true)

Whether the result should show the system properties.

...

rootPath

...

required

The root path of this endpoint. Path information when requesting the endpoint is added to this path.

...

bypassWorkspaceAcls

...

optional (default=false)

When set to true JCR security is bypassed. (warning) Use with care and for development reasons only!

...

limit*

...

optional (default=10)

The number of nodes (of level 0) in the result. Only used in queryNodes method.

This REST resource is customizable and flexible to use.

Two versions of the delivery endpoint exist. Both versions can resolve references to nodes of other JCR workspaces. But only version 2 can deliver localized content.

Delivery endpoint v2

Version 2 was introduced with Magnolia REST 2.1 and provides more flexibility. You can use it to define multiple endpoint configurations, deliver localized content and resolve references to nodes of other workspaces including assets and asset renditions.

See Delivery endpoint API v2.

Delivery endpoint v1

Version 1 was introduced with Magnolia REST 2.0. You can configure a single endpoint for your project.

Note

Version 1 is deprecated, but you can still use it if required. We recommend you use the newer version 2.

See Delivery endpoint API v1

*) These properties can be overridden when calling queryNodes with a request parameter.

Configuring reference resolving

...

.