Headless Drupal
Inhalte aus Drupal, Darstellung in einem eigenen Frontend.
Bei einer entkoppelten Architektur verwaltet Drupal die Inhalte und liefert sie über Schnittstellen aus. Die Darstellung übernimmt eine eigene Anwendung, etwa auf Basis von React, Vue oder Astro.
Zwei Formen der Entkopplung
Vollständig entkoppelt heißt: Drupal stellt keine Seite mehr selbst dar. Das Frontend ist eine eigene Anwendung mit eigenem Betrieb, die alle Inhalte über Schnittstellen bezieht.
Teilweise entkoppelt heißt: Drupal stellt die Seiten weiter dar, und einzelne Bereiche laufen als eigene Anwendung im Browser. Ein Produktfinder, ein Konfigurator oder eine Suche mit vielen Filtern sind typische Fälle. Die Redaktion behält Seitenaufbau und Vorschau, das Frontend gewinnt dort Freiheit, wo sie gebraucht wird.
Beide Formen lassen sich mit dem klassischen Betrieb verbinden. Eine Website kann klassisch laufen, während eine App dieselben Inhalte über die Schnittstelle bezieht.
Was sich mit der Entkopplung ändert
| Bereich | Klassisch | Vollständig entkoppelt |
|---|---|---|
| Darstellung | Vorlagen in Drupal | eigene Anwendung mit freier Technikwahl |
| Seitenaufbau durch die Redaktion | im System enthalten | muss im Frontend nachgebildet werden |
| Vorschau | im System enthalten | eigene Lösung nötig |
| Betrieb | ein System | zwei Systeme mit eigenen Updates |
| Weitere Kanäle | über Schnittstellen möglich | von Anfang an vorgesehen |
| Team | Drupal-Entwicklung | Drupal- und Frontend-Entwicklung |
Schnittstellen für das Frontend
Die Schnittstelle JSON:API gehört seit Version 8.7 zum Kern von Drupal und braucht keine Einrichtung1. Jeder Inhaltstyp erhält eine eigene Adresse, über die Inhalte gelesen, angelegt, geändert und gelöscht werden. Filter, Sortierung und das Mitladen verknüpfter Inhalte sind Teil des Standards.
GraphQL steht als Modul aus der Community zur Verfügung. Das Frontend fragt damit genau die Felder ab, die es braucht. Das Schema wird dabei bewusst entworfen oder mit einem Zusatzmodul aus den Inhaltstypen erzeugt.
Dazu kommen Module für die Anmeldung per OAuth 2.0, für die Auflösung von Adressen und Weiterleitungen und für die Beschreibung der Schnittstelle nach dem OpenAPI-Standard.
Was wir übernehmen
Architekturentscheidung
Klassisch, teilweise oder vollständig entkoppelt, begründet an Ihren Anforderungen.
Inhaltsmodell und Schnittstelle
Inhaltstypen so schneiden, dass das Frontend sie ohne Umwege verwenden kann.
Frontend-Entwicklung
Eigene Anwendung mit serverseitiger Darstellung für Ladezeit und Auffindbarkeit.
Vorschau und Redaktion
Vorschau, Entwürfe und Freigaben im entkoppelten Aufbau.
Betrieb beider Systeme
Hosting, Zwischenspeicher und Updates für Drupal und Frontend.
Wann sich die Entkopplung lohnt
Die Entkopplung lohnt sich, wenn mehrere Kanäle dieselben Inhalte beziehen, wenn das Frontend stark interaktiv ist oder wenn ein eigenes Frontend-Team vorhanden ist. Sie lohnt sich nicht, wenn eine einzelne Website im Mittelpunkt steht und die Redaktion Seiten frei aufbauen soll. Dann ist der klassische Betrieb schneller umgesetzt und günstiger zu betreiben.
In vielen Fällen ist die teilweise Entkopplung der passende Mittelweg.
Quellen
- 1Drupal.org: Decoupled Drupal: APIs and useful modules, ↩
Steht bei Ihnen die Entscheidung für oder gegen Headless an?
Häufige Fragen
Was bedeutet Decoupled Drupal?
Decoupled Drupal trennt die Verwaltung der Inhalte von ihrer Darstellung. Drupal liefert Inhalte über Schnittstellen, ein eigenes Frontend stellt sie dar.
Leidet die Auffindbarkeit in Suchmaschinen?
Nicht, wenn das Frontend die Seiten auf dem Server erzeugt. Titel, Beschreibungen, Weiterleitungen und strukturierte Daten werden weiter in Drupal gepflegt und vom Frontend ausgegeben.
Können wir später entkoppeln?
Ja. Die Schnittstelle ist im Kern vorhanden. Eine klassisch betriebene Website kann später um ein eigenes Frontend oder um weitere Kanäle ergänzt werden, wenn das Inhaltsmodell sauber angelegt ist.
