This page explains the delivery endpoint, which can be used to obtain JCR data as JSON.
The endpoint provides two resources to be called with HTTP
.
The delivery endpoint must be configured via YAML. Its next version will allow multiple named configurations which can be distinguished by URL path parameter.
Methods
readNode
Returns one node by a given path including its properties and child nodes down to a certain depth.
Request URL
/delivery/{workspace}/v1/{path}
Parameters
Advanced Tables - Table Plus |
---|
highlightColor | @default |
---|
multiple | false |
---|
enableHeadingAttributes | false |
---|
enableSorting | false |
---|
enableHighlighting | false |
---|
|
Parameter | Description | Data type | workspace
| required The name of the workspace. | string
| path
| required The path relative to the rootPath defined in the configuration | string
|
|
Example
Get the node of the first component in the area main
of the page /travel/hello
.
Code Pro |
---|
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/delivery/website/v1/travel/hello/main/0' \
-u superuser:superuser |
Expand |
---|
title | Click to see the resulting JSON |
---|
|
Code Pro |
---|
| {
"@name": "0",
"@path": "/travel/hello/main/0",
"text": "<p>This is demo content - which was added to the travel demo after installation for test reasons.</p>\n",
"constrainAspectRatio": "false",
"imagePosition": "below",
"headlineLevel": "small",
"headline": "Welcome to this demo content to test REST",
"image": "jcr:795449d2-6c16-402e-9e8a-bbb101fe22bb",
"@nodes": []
} |
|
queryNodes
This rest resource returns a list of nodes matching a query which is composed by the given query parameters.
Request URL
/delivery/{workspace}/v1?param1=value1¶m2=value2&...
You can use any of the optional query parameters or none.
Parameters
Advanced Tables - Table Plus |
---|
highlightColor | @default |
---|
multiple | false |
---|
enableHeadingAttributes | false |
---|
enableSorting | false |
---|
enableHighlighting | false |
---|
|
Parameter | Description | Parameter type | Data type | workspace
| required The name of the workspace. | path
| string
| nodeTypes
| optional Comma-separated string of primary node types. | query
| string
| q
| optional Text to search (full-text search). | query
| string
| orderBy
| optional The properties to order the nodes. Example: mgnl:lastModified desc,title asc | query
| string
| offset | optional (default=0) Starting position in a result list (to use for pagination) | query | Integer | limit
| optional (default: as set in YAML configuration)
The number of nodes displayed in a pagequery. (To use togehter with offset for pagination). | query
| Integer
|
|
Example
..
Anchor |
---|
| configuration |
---|
| configuration |
---|
|
YAML configuration
Multiexcerpt |
---|
MultiExcerptName | configuration |
---|
|
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 |
---|
| 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: class | required Must be info.magnolia.rest.delivery.jcr.JcrDeliveryEndpointDefinition or a subclass. | implementationClass | required Must be info.magnolia.rest.delivery.jcr.v1.JcrDeliveryEndpoint or a subclass. | params | 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 |
---|
className | info.magnolia.rest.delivery.jcr.WorkspaceParameters |
---|
renderType | asynchronous |
---|
|
). | 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. 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. | *) These properties can be overridden when calling queryNodes with a request parameter. Configuring reference resolving.. |