Last updated: Feb 01 2019
Content Delivery API
This topic introduces the concept of "headless CMS" and the Episerver Content Delivery API. A "headless CMS" consists of a back-end content repository that can be accessed for example through a RESTful API, providing flexibility when pulling content data into other systems.
How it works
A traditional non-headless CMS is built so that the CMS runnning on the server controls how the content is presented. The "head" is responsible for generating the HTML that is parsed and rendered by the browser.
A headless CMS is a back-end only CMS built up as a content repository that makes content accessible through REST APIs for display on multiple devices. The "head" is the front-end, and the "body" is the back-end content repository. The "missing head" is the presentation layer.
The headless CMS does not know how content is presented. It is a specialized database, serving content that is transformed into HTML by other systems. Episerver CMS has a powerful presentation layer, and as such is not a headless CMS.
However, there are situations where a headless approach is preferred, to provide the ability to pull raw content from outside the presentation layer.
The following are example scenarios when a headless approach is useful:
- To provide content for native applications that are not HTML-based.
- To integrate with a Point of Sales (POS) network, linking different output systems.
- To manage content for legacy platforms inside Episerver.
The Content Delivery API is a flexible programming interface that you can use for building this type of solutions, using Episerver as a hub for all content.
The Content Delivery API is a pluggable and configurable web API for querying IContent, providing you with the ability to:
- Deliver IContent, see Content.
- Use Episerver Find to query content. (Episerver Find is installed via the EPiServer.Find NuGet package and requires a separate license.)
- Support localized content and multi-site scenarios.
- Support common querying, filtering, and sorting scenarios.
- Support returning access-controlled and personalized content.
Headless and personalization
How do you add content personalization to a headless solution where the tracking does not hit a controller in the presentation layer?
You can use a headless approach through the Content Delivery API, for content recommendations with Episerver Advance. To do this you need to implement a compatible tracking, and calls to the recommendation API, since in this case you cannot use the native integration packages. See Tracking and Advance API.
In a headless scenario, you can also customize the DefaultContentModelMapper and replace it with your own. See How to customize API to change data returned to clients and Serialization.
Note: The DefaultContentModelMapper is currently marked as internal, so there is a risk of unadvertised breaking changes when customizing this.
- On-page editing with client-side rendering
- Installing Content Delivery API
- Configuration of Content Delivery API
- Content Search API
- Authorization Service
- Content Delivery Api and Azure AD
- Episerver Content Delivery API class library/SDK
- Support of IList<T> in Episerver Content Delivery API
- Extended routing for Episerver Content Delivery API
- Content as a Service and Episerver – Part 1 – Introduction
- Content as a Service and Episerver – Part 2 – What is Content as a Service
- Content as a Service and Episerver – Part 3 – Content Delivery API
- Tweaking and extending serialization from Episerver Content Delivery API