This API specification is available for download as an Open API 3.0 YAML file:
The following page lists available REST APIs for ICM 7.10 and their version dependencies:
The Intershop Content Management System REST API contains resources that reflect the main aspects of the content management system. These include pagelets, pages, includes and more.
You can use the API to retrieve information about individual CMS objects and their composition.
Some of the RestResourceObjects in this API refer to other objects. A pagelet for example contains slots, which need to be returned or referred to.
Since the Intershop Content Management System REST API has a hierarchical structure which can be manipulated by depth regulation,
these elements can either be links to specific resources or the complete resolved resource as is.
This will be expressed through specific adaptables, in which for example a SlotAdaptable
can be a SlotRO
(for the element) or a SlotLinkRO
(for the link to the resource).
class PageletRO{
Map<String, SlotAdaptable> slots // This can either be SlotROs or SlotLinkROs
}
// JSON with SlotLinkROs:
{
slots:{
foo: { uri : '.../s1'},
bar: { uri : '.../s1'}
}
}
// JSON with SlotROs:
{
slots:{
foo: {
pagelets:[ ... ],
...
},
bar: {
pagelets:[ ... ],
...
}
}
}
All item resources in this API, like includes, pages, pagelets and viewcontexts are described in hierarchical render structures.
As these can grow very large, the response can be limited with the optional depth
query parameter. As soon as the requested depth is reached, a deeper element in the hierarchy will not be resolved anymore - instead a link to this resource will be provided.
All list resources in this API are pageable, so you can provide an offset
and an amount
as query parameters to select the range of results. You can also provide a pageable
-ID (which will be returned from these resources) to your next call, to use the cached data from the server.
All operations in this API can serve personalized data.
If you request any data without further authentication, you will be treated as anonymous.
To get personalized data, you must provide a basic authentication header, together with a personalization group ID (pgid
).
This ID must be applied as a matrix parameter at the /cms
-path segment.
Anonymous Request for page my.page
:
curl -X GET -i /cms/pages/my.page
Personalized Request for page my.page
:
curl -X GET -H 'Authorization: Basic <auth>' -i /cms;pgid=<pgid>/pages/my.page
As a result of a personalized request, all links in the response will contain the pgid
to simplify navigation.
Notes:
/personalization
endpoint to retrieve the pgid of a specific user.pgid
, you will get a bad request
.Open ReDoc-rendered Open API documentation in separate window.