Introduction to the Delivery API
The built-in Delivery API (formerly Page Model API) provides an intuitive REST API endpoint for SPAs, ensuring seamless integration with the HST delivery tier and the Experience manager.
Bloomreach Experience Manager 14.x currently provides two different versions of the Delivery API, 0.9 and 1.0, which are significantly different in their JSON response format.
For backward compatibility, the default Delivery API version is 0.9 in all Bloomreach Experience Manager 14.x releases.
Because of significant differences between versions 0.9 and 1.0, each version is documented on it own separate page:
The following documentation pages apply to both versions, unless otherwise indicated in the content:
- Configure Delivery API
- Model Contribution APIs
- Customize JSON Serialization of Domain-Specific POJO Models
- Swagger API Documentation Support
- Delivery API JWT Authentication
Delivery API v0.9 vs v.10
Changes From Version 0.9
The Delivery API version 1.0 differs from version 0.9 in that it flattens many commonly used objects such as HstComponent, HippoDocumentBean, and CommonMenu. An implementation project can mark objects to be serialized flattened as well by implementing the marker interface PageModelEntity.
Improvements in Version 1.0
The flattened model is easier to understand and debug
It's easier to build a custom integration (like GraphQL server)
Internal links don’t contain context paths anymore (no need for a workaround)
Delivery API links are fully-qualified (no need for a workaround)
The menu is a separate entity within the Delivery API, so it can be strictly identified that on the page
The image set is a separate entity, and therefore there is better support for it in the SPA SDKs (SPA SDKs handle links generation for the thumbnails)
Possibility to contribute to the page model
Possibility to extend the page model processing on the SPA SDK side (in the future)
There is no need to configure a base URL of the CMS, and as a result, we have only one required parameter in the SPA SDK
The primary document is always present and is a first class citizen
ParamsInfo has been improved to filter out duplicates and replace document references with actual content references (mostly relevant for Experience Pages)
Pagination Support for List Components