Introduction to Page Model API
The built-in 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 Page Model API, 0.9 and 1.0, which are significantly different in their JSON response format.
For backward compatibility, the default Page Model 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:
- Page Model API 0.9 (default)
- Page Model API 1.0 (available since Bloomreach Experience Manager 14.3.0)
The following documentation pages apply to both versions, unless otherwise indicated in the content:
- Configure Page Model API
- Model Contribution APIs
- Customize JSON Serialization of Domain-Specific POJO Models
- Swagger API Documentation Support
- Page Model API JWT Authentication
Page Model API v0.9 vs v.10
Changes From Version 0.9
The Page Model 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)
Page Model API links are fully-qualified (no need for a workaround)
The menu is a separate entity within the Page Model 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