Last updated: Mar 12 2018
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.
- Episerver Content Delivery API class library/SDK
- Blog post: Content as a Service and Episerver – Part 1 – Introduction by Aria zanganeh
- Blog post: Content as a Service and Episerver – Part 2 – What is Content as a Service by Aria zanganeh
- Blog post: Content as a Service and Episerver – Part 3 – Content Delivery API by Aria zanganeh
- Blog post: Extended routing for Episerver Content Delivery API by Johan Björnfot
- Blog post: Tweaking and extending serialization from Episerver Content Delivery API by Alf Nilsson