iX 11/2017
S. 74
Report
Content-Management
Aufmacherbild

Headless CMS mit REST-API

Kopflos

Klassische Content-Management-Systeme bauen aus Texten und Bildern auch gleich die fertige Website zusammen. Lässt man die Seitengenerierung weg, erhält man ein schlankes und wesentlich flexibleres CMS, das die Inhalte per REST-API für unterschiedlichste Clients bereitstellen kann.

Das Theater an der Emscher kündigt seine Veranstaltungen schon lange über ein Content-Management-System im Web an. Nun soll eine neue Theater-App die Zuschauer auch auf ihren Smartphones auf dem Laufenden halten und mit pfiffigen Zusatzfunktionen an das Theater binden. Die Informationen über die Vorstellungen liegen bereits im Content-Management-System – da liegt es nahe, das CMS als zentrales Datenlager zu verwenden und sowohl die App als auch die Website daraus zu füttern. Bei klassischen CMS erfordert das jedoch einige Verrenkungen. Hier schlägt die Stunde der Headless CMS.

Die zwei Seiten eines CMS

Bei einem klassischen CMS wie WordPress erzeugt die integrierte Template-Engine aus einer Vorlage und den Inhalten aus der Datenbank die Webseiten. Designer und Entwickler arbeiten mit der Template-Engine (Abb. 1).

Klassische Content-Management-Systeme besitzen zwei Seiten: Seitenbetreiber und Redakteure pflegen die Inhalte im Backend in eine Datenbank ein. Häufig handelt es sich dabei um passwortgeschützte Unterseiten des Internetauftritts. Besucher sehen das Frontend, das die im CMS enthaltene Template-Engine aus den Inhalten und einer Designvorlage erzeugt. Webseitenbetreiber müssen so nur eine schicke Designvorlage in Form von ein paar CSS- und HTML-Dateien beisteuern, um alles andere kümmert sich das CMS.

Viele Unternehmen verlangen allerdings maßgeschneiderte Websites mit speziellen Funktionen. Dann müssen Entwickler das Frontend aufbohren, was jedoch durch die Eigenheiten und Beschränkungen der CMS erschwert wird, um die die Entwickler häufig herumprogrammieren müssen. Einige CMS sind zudem zu komplexen Biestern herangewachsen, was den Schulungsaufwand für die Entwickler erhöht und die Arbeit am Frontend weiter erschwert – wer schon einmal unter Zeitdruck ein Modul für Joomla schreiben musste, kann ein Lied davon singen. Und da jedes CMS einen eigenen Weg bei der Frontend-Entwicklung vorschreibt, lässt es sich nicht mehr einfach gegen ein Konkurrenzsystem austauschen.

Um sich die Arbeit am Frontend zu erleichtern und die Portabilität zu erhöhen, flanschen Entwickler gerne Frameworks wie Bootstrap, React oder Angular an. Damit verlagern sich allerdings immer mehr Teile der Anwendungslogik vom CMS in den Browser. Mitunter entsteht sogar ein komplett neues Frontend, das nur noch wenige Funktionen der Template-Engine nutzt und die meisten Frontend-Funktionen des CMS links liegen lässt.

Es geht auch ohne Frontend

Zudem ließen sich die im CMS gespeicherten Daten auch noch an anderen Stellen weiterverwenden. Man könnte sie beispielsweise wie das Theater an der Emscher in einer App anzeigen, in einen Onlineshop einbinden oder von Amazons Alexa vorlesen lassen. Vielleicht sollen die Inhalte auch auf unterschiedlichen Websites des Unternehmens erscheinen. Das erreicht man bei vielen traditionellen CMS nur über Erweiterungen oder Änderungen am Quellcode.

Wenn das Frontend sowieso selbst entwickelt wird, reicht ein Content-Management-System, das sich lediglich um die Erfassung und Verwaltung der Inhalte kümmert – ein „Headless CMS“ oder „Decoupled CMS“. Apps, Webanwendungen und sonstige Clients holen sich die benötigten Inhalte über eine Schnittstelle. Die einmal eingegebenen Informationen stehen dann automatisch in allen Clients zur Verfügung, eine doppelte und dreifache Datenhaltung entfällt. Da das CMS jetzt viele verschiedene Ziele und Geräte mit ganz unterschiedlichen Anforderungen bedienen kann, ist es zudem wesentlich flexibler einsetzbar.