What is Episerver Content Delivery API?
In Episerver CMS, you use built-in C# Razor helpers to render pages and blocks on a website. With the Episerver Content Delivery API, you can use Episerver CMS in a headless mode, which means all pages and blocks are rendered by reading JSON data returned from a REST API. You can build Episerver sites, Single Page Application (SPA) sites, mobile apps, or other external applications by retrieving Episerver page and content data over HTTP and without using the Episerver user interface. You can use Episerver Content Delivery API together with JavaScript frameworks such as React, Vue, or Angular to build your SPA sites.
Headless CMS vs non-headless CMS
A traditional non-headless CMS is built so that the CMS running 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 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.
The advantage of the headless CMS is that it is built up as a content repository that makes content accessible through REST APIs for display on multiple devices and across multiple channels. 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 and this is where the Episerver Content Delivery API can be used.
Why should I use it?
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/products inside Episerver.
- To manage content for third-party platforms integrated with Episerver CMS without using the user interface.
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 Search & Navigation (formerly Episerver Find) to query content. (Episerver Search & Navigation 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.
See the Episerver Content Delivery API class library/SDK.
Related topics
Blog posts
- 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
Last updated: Jul 02, 2020