Magnolia 5.6 reached end of life on June 25, 2020. This branch is no longer supported, see End-of-life policy.
This page describes the delivery endpoint for obtaining JCR data as JSON. The endpoint provides two resources that can be called with HTTP GET . The endpoint has to be configured via YAML, which enables its customization.
readNode
Returns one node by a given path, including its properties and child nodes down to a certain depth.
GET /delivery/{workspace}/v1/{path}
Parameter | Description | Data type |
| required The name of the workspace. |
|
| required The path relative to the |
|
Get the node of the first component in the main
area of the /travel/hello
page.
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/delivery/website/v1/travel/hello/main/0' \ -u superuser:superuser
queryNodes
Returns a list of nodes matching a query composed of the given query parameters.
GET /delivery/{workspace}/v1?param1=value1¶m2=value2&...
Use any of the optional query parameters or none.
Parameter | Description | Parameter type | Data type |
| required The name of the workspace. |
|
|
| optional A comma-separated string of primary node types. |
|
|
| optional A search phrase (full-text search). |
|
|
| optional The properties by which to order the nodes. Example: |
|
|
offset | optional, default is The start position in a result list (for pagination). | query | Integer |
| optional, default: as set in YAML configuration The number of nodes displayed in a page query. Used together with |
|
|
*) Note that special characters such as a space (
) must be encoded when sent in an HTTP request. When using tools to generate a REST request, this may happen automatically. With simple cURL you have to encode it manually or with an additional tool. Example: orderBy=title%20asc
Search nodes in the tours
workspace which contain the keyword vietnam . Return the results in descending order by the location
property and restrict the limit to one.
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/delivery/tours/v1?q=vietnam&orderBy=location%20desc&limit=1' \ -u superuser:superuser
The delivery endpoint requires a YAML configuration - otherwise it cannot deliver content. Version 2.0 of the Add the configuration to the folder Properties: required Must be required Must be required The map defining at least one ore more workspace. required The name of the JCR workspace to deliver content from. You may define as many workspaces as needed. Configure each workspace with the below properties. (The definiton class is WorkspaceParameters). required An list of allowed node types. optional (default=0) The depth of subnodes to shwo in the result optional (default=true) Whether the result should show the system properties. required The root path of this endpoint. Path information when requesting the endpoint is added to this path. optional (default=false) When set to true - JCR security is bypassed. Use with care and for development reasons only! optional (default=10) The number of nodes (of level 0) in the result. Only used in *) These properties can be overridden when calling A node may contain references to other nodes. You can extend the configuration to force it to resolve referenced nodes per workspace with the property Properties of An arbitrary name for a ReferenceDefinition. The reference resolver definition for this reference, its definition class is ReferenceResolverDefinition. A class implementing ReferenceResolverDefinition. Current implementations: UuidReferenceResolvermagnolia-rest-content-delivery
module can have only one configuration. (Future versions will allow multiple configurations which can be distinguished via URL parameter.)restEndpoints
in a light module or within src/main/resources/<module-name>/restEndpoints
in a Magnolia Maven module.Basic configuration
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
class
info.magnolia.rest.delivery.jcr.JcrDeliveryEndpointDefinition
or a subclass.implementationClass
info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpoint
or a subclass.params
<workspace-name>
nodeTypes*
depth*
includeSystemProperties
rootPath
bypassWorkspaceAcls
limit*
queryNodes
method.queryNodes
with a request parameter.Reference resolving configuration
references
class: info.magnolia.rest.delivery.jcr.JcrDeliveryEndpointDefinition
implementationClass: info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpoint
params:
tours:
depth: 1
includeSystemProperties: false
nodeTypes:
- mgnl:content
- mgnl:folder
rootPath: /
references:
tour-types:
propertyName: tourTypes
referenceResolver:
implementationClass: info.magnolia.rest.reference.jcr.UuidReferenceResolver
targetWorkspace: category
references
:references
A map which contains at least one reference definition. <reference-name>
propertyName
The name of the JCR property which stores the reference. (Can be a multi-value property). referenceResolver
implementationClass
targetWorkspace
The name of the workspace where the referenced node resides.