Als ich zum ersten Mal von Contenta hörte (ohne zu wissen, was es war), war ich verblüfft, wie man einen so lustigen Namen für ein Tech-Produkt verwenden konnte. War es so gut, dass es die Leute glücklich und zufrieden damit machte?
Entkoppeltes Drupal entwickelt sich zum angesagtesten Branchentrend. Der Grund dafür ist die kontinuierliche Verbreitung neuer Methoden der Inhaltsverteilung. Wenn es um entkoppelte Drupal-Distributionen geht, bietet Contenta-CMS diese direkt einsatzbereit.
Lassen Sie uns tiefer eintauchen und die aufschlussreiche Reise dieser Headless-Drupal-Distributionsarchitektur erkunden.
Was ist Contenta?
Mit dem Aufkommen von Drittanbieter-Websites und vernetzten Geräten fließt der Inhalt frei im Internet. Dies erfordert einen uneingeschränkten Inhaltsfluss zwischen Websites, Apps, Geräten und nun auch vernetzten Geräten. Kurz gesagt: Inhaltsflexibilität.
„Drupal’s Content-as-a-Service-Ansatz ermöglicht ultimative Flexibilität.“
Drupal ermöglicht es Ihnen, die Inhaltsverwaltung von der Präsentation zu trennen, wodurch Frontend-Entwickler nicht nur leistungsstarke und ansprechende Kundenerlebnisse, sondern auch zukunftssichere Inhalte erstellen können.
Mit dem Aufstieg von Drupal 8 als Headless-Plattform war eine der Schlussfolgerungen der DrupalCon Baltimore im Jahr 2017, den Headless-Übergang reibungsloser zu gestalten. Und so wurde Contenta geboren.
Mateu Aguilo Bosch (Koordinator der API-First-Initiative), Cristina Chumillas, Sally Young, Daniel Wehner und andere arbeiteten unermüdlich daran, Contenta CMS zu verwirklichen.
Contenta ist eine API-First-Drupal-Distribution.
Entkopplung ist nicht mehr der große Aufwand, der es noch vor einigen Jahren war. Doch trotz ihrer Popularität bleiben zwei Herausforderungen ungelöst – nicht im Konzept, sondern in der Implementierung.
Die Entkopplung kann eine Herkulesaufgabe sein, angesichts der erforderlichen Schritte und der Komplexität der Handhabung zweier Technologien.

Eine weitere Herausforderung ist, dass es nur für diejenigen hervorragend funktioniert, die mit Drupal vertraut sind und ein fundiertes Verständnis seiner Funktionsweise haben.
Genau das löst Contenta. Wie? Lesen Sie weiter.
Contenta erkunden: Vier Gründe, sich dafür zu entscheiden
Kostenlos nutzbar
Contenta ist eine vollständig kostenlose Open-Source-Software mit einer GPL v2.0-Lizenz. Das bedeutet, Sie haben keine Einschränkungen. Keine Preispläne oder maximale Anzahl von Anfragen mehr. Jeder kann es nutzen.

Da es auf Drupal basiert, arbeiten Drupal-Community-Expert:innen kontinuierlich an den Updates.
Leichtgewichtig
Contenta nutzt die bestmöglichen Optionen zur Datenbereitstellung für eine Headless-Anwendung. Der Großteil des Drupal-Bootstrappings wird in diesem Prozess umgangen. Die Request-Payload und die Response sind im Vergleich zur Drupal REST API ebenfalls sehr gering. Durch die Integration mit Contenta JS, einem leichtgewichtigen Proxy-Server auf Basis von Node.js, kann es daher Anwendungen mit vielen Interaktionen mit einem CCMS verarbeiten.
Dokumentation verfügbar
Wenn Sie Contenta installieren, erhalten Sie Zugang zum Dokumentationsportal. Beispielinhalte helfen Ihnen, die Funktionsweise zu verstehen. Diese können mit einem Klick entfernt werden. Contenta CMS wird aktiv von einer offenen Community unterstützt. Viele Anwender:innen in verschiedenen Technologien können Ihnen zeigen, wie einfach es ist, ein Contenta-Projekt zu erstellen.

Als Teil des Installationsprozesses installiert Contenta optional alle Inhaltstypen und Inhalte, die zum Erstellen der Magazinanwendung erforderlich sind. Einen API-Server ohne Inhalte auszuprobieren, ist ein echter Dämpfer.
API-First
Contenta ist API-First. Das bedeutet, dass die nahtlose Integration verschiedener Technologien eine standardmäßige Funktionalität ist. Die API-First-Idee entstand, um den Entwicklungsprozess, der verschiedene Technologien umfasst, zu standardisieren und das Chaos zu beseitigen.
Darüber hinaus bedeutet API-First, die Kontrolle über Inhalt und Präsentation über verschiedene Kanäle/Medien hinweg zu haben.
Daher hat Contenta (und Drupal im Backend) die Kapazität, die Backend-Systeme für Sprachen wie Python, PHP, React, Vue und Ember zu steuern (um nur einige Beispiele zu nennen).
Der Übergang vom traditionellen zum modernen CMS
Eine traditionelle Website lässt sich am besten als eine auf einem CMS basierende Website erklären, die sowohl das Frontend als auch das Backend abdeckt.

Auf einer sehr grundlegenden Ebene sind traditionelle CMS unflexibel, wenn es um die Implementierung neuer, extern erstellter Lieferformate geht. Ein traditionelles CMS würde versuchen, alles selbst zu erledigen: Inhalte auf Backend-Ebene verwalten und in Frontend-Formate übertragen. Doch meist führt dies zu einer statischen Erfahrung.
Die Lösung besteht daher darin, (im übertragenen Sinne) den „Kopf“ abzuschlagen, um die dringend benötigte Flexibilität zu ermöglichen.
Der Kopf repräsentiert hier die Präsentation des Inhalts oder das Frontend der Website, und was übrig bleibt, bildet das Backend. Vor diesem Hintergrund konzentriert sich ein Headless CMS auf:
- Erleichterung des Workflows und der Zusammenarbeit zwischen Frontend und Backend
- Organisation von Inhalten im Repository (semantisch, Sammlungen, Taxonomien)
- Erstellung und Präsentation von Inhalten (einschließlich Übersetzungen)
Was ein Headless CMS jedoch entfernt, sind Web-Delivery-Layer, wie ein Templating-System, die Verwaltung der Seitenstruktur und des Stils, die bestimmen, wie Inhalte an die Frontend-Nutzer:innen geliefert oder präsentiert werden.
Unterschied zwischen entkoppelt und Headless Ein Headless CMS bedeutet wörtlich ein CMS, bei dem das Repository-System, d.h. das Backend, unabhängig von Inhaltslieferungs- und Präsentationstools arbeitet. Während ein entkoppeltes CMS eine reguläre Full-Stack-Lösung für Inhaltsverwaltung, -lieferung und -präsentation ist, ermöglicht es, die darin enthaltene Inhaltsspeicherung und -präsentation von anderen Systemen zu nutzen. |
Bei einem Headless CMS sind Frontend und Backend getrennt und eine API wird hinzugefügt. Zudem wird das Frontend eher mit einer Web-App betrieben, die beispielsweise mit React oder Angular für eine verbesserte Benutzeroberfläche erstellt wurde.

Während bei der entkoppelten Architektur Drupal es Ihnen ermöglicht, Backend und Frontend dort zu entkoppeln, wo es sinnvoll ist. So können Sie Inhalte Ihrer Drupal-Website in wiederverwendbaren Blöcken nutzen, losgelöst von der Präsentation, bereit für die kreative Bereitstellung auf Websites und in Apps.
Drupal erleichtert die Aufnahme von Drittanbieter-Inhalten (von Aggregatoren und Syndikatoren), indem es Inhalte in Ihre Drupal-Umgebung bringt und sie dann einfach auf jede Website, App oder jeden Kanal übertragen lässt.
Die Notwendigkeit für Contenta
So schick und einfach das Konzept von Headless auch klingt, Theorie und praktische Umsetzung sind nicht einmal annähernd gleich, was den Prozess kompliziert und mühsam macht.
Erschwerend kommt hinzu, dass es an zwingenden Ausgangspunkten, Standards und Best Practices mangelt.
Das Problem ist nicht, dass es zahlreiche konkurrierende Ansätze gibt, sondern das Fehlen eines Ansatzes, der als Ausgangspunkt für Nicht-Drupal-Nutzer:innen dient, deren Ziel es lediglich ist, einige Frontend-Technologien mit Drupal zu konfigurieren und bessere Ergebnisse zu erzielen.

Dies ist wichtig, da das Zusammenfügen aller Tools eine überwältigende Aufgabe sein kann. Darüber hinaus müssen Sie, sobald alles eingerichtet ist, die komplexen Details Ihres Frontend-Projekts verstehen.
Wie auf der offiziellen Website angegeben, „...ist Contenta CMS die Antwort der Community, eine API-First-Drupal-Distribution zu entwickeln“. Angesichts der Herausforderungen, mit denen die Community konfrontiert ist, verfolgt Contenta das Ziel:
- Die Nutzung oder das einfache Ausprobieren von entkoppeltem Drupal zu erleichtern.
- Eine standardisierte API-Plattform bereitzustellen, die zusammen mit Demo-Inhalten sofort einsatzbereit ist.
Entwicklung mit Contenta: Wie weit ist die Community vorangekommen?
Das Schnellinstallationsprogramm in Contenta rationalisiert den problemlosen „Ein-Befehl-Installationsprozess“ des CMS.
Wie wird es gemacht?
Das folgende Video zeigt einfache Schritte, die die Installation dieser API-First-Drupal-Distribution erleichtern.
Obwohl Contenta erst seit Kurzem existiert, setzen Technik-Expert:innen es nach bestem Wissen und Gewissen ein. Hier sind zwei interessante „reale“ Anwendungen, die auf Contenta basieren.
Virtuelle Postkarten
Ja, Postkarten! Das Team von FourKitchens präsentierte auf der DrupalCon Nashville 2018 viele interessante Dinge rund um virtuelle Realität (VR). Und eines davon waren virtuelle Postkarten.
Zwei iPads wurden verwendet, um Besucher:innen mit itSeez3D, einer mobilen 3D-Scan-Anwendung, zu scannen. Hinter den Kulissen wurden die Modelle an einen Endpunkt gemailt, der die OBJ-Datei empfing, sie auf die Drupal 8 (über Contenta-Distribution) Website hochlud und daraus kleine virtuelle Postkarten erstellte. Sie können sich die virtuelle Postkarte auch ansehen.

Interaktive Webanwendung – Imagine Canada Grant Connect
Imagine Canada Grant Connect ist eine kanadische nationale Wohltätigkeitsorganisation.
Mit Contenta können Sie auch den Aufbau einer datenreichen und hochinteraktiven Webanwendung wie der von Grant Canada erleben.

Die Modernisierung eines robusten, älteren Produkts für eine national anerkannte Non-Profit-Organisation und ein Sozialunternehmen (Imagine Canada's Grant Connect) erforderte sorgfältige Überlegung und einen optimierten Ansatz. Eine engagierte und spezialisierte Kundenbasis, ein restriktives Budget und Jahrzehnte hochkomplexer Daten stellten alle einzigartige Herausforderungen dar, die es zu lösen galt.
All dies half Contenta zu lösen.
Was macht Contenta ideal für eine Headless-Drupal-Anwendung?
Contenta bündelt die wichtigsten Module zur Erstellung von Headless-/Entkoppelten Anwendungen. Es spart Zeit, indem es wichtige Standardfunktionalitäten und Module bereitstellt, wie zum Beispiel:
- JSON API im Einsatz
„Das JSON API-Modul ist eine vollständig konforme Implementierung der JSON API Spezifikation... Sie können die Produktivität steigern, allgemeine Tools nutzen und sich auf das Wesentliche konzentrieren – Ihre Anwendung.“
Contenta CMS bietet nicht nur JSON API, sondern macht es zu einem Standard für die Bereitstellung von Daten über Endpunkte.
JSON API ist jetzt Teil des Drupal 8.7 Cores. Anwendungen, die auf JSON API basieren, können dessen Funktionen nutzen, wie das effiziente Zwischenspeichern von Antworten, wodurch Netzwerk-Anfragen manchmal vollständig eliminiert werden können.
So hilft es Entwickler:innen, Clients schneller zu erstellen und die Wiederverwendung von Code zu fördern.
JSON API konzentriert sich darauf, Drupa’s größte Stärke (Entitäten/Datenmodellierung) kohärent darzustellen. Einfach, aber ausreichend leistungsstark für die meisten Anwendungsfälle.
Anstatt also vom Core bereitgestellte Formate wie HAL-JSON, XML oder CSV zu verwenden, die in Client-Side-Anwendungen sorgfältig behandelt werden müssen, können Entwickler:innen im Standard-JSON-Format mit deutlich geringerem Aufwand und Code arbeiten.
Sie können auch den offiziellen Drupal JSON API Guide konsultieren, um die Anforderungen Ihrer Anwendung zu verstehen. Kurz gesagt: Wenn alle Ihre Anwendungen Entitätsdaten benötigen, entscheiden Sie sich für JSON API.
- JSON API Extras
Ein weiteres nützliches Modul, das Ihnen eine größere Kontrolle über Ihre Anwendung und die bereitgestellten Daten ermöglicht. JSON API Extras erlaubt es Ihnen, die Standardausgabe des JSON API-Moduls zu ändern, indem Sie unter anderem Endpunkte deaktivieren, Datenformate oder die JSON-Struktur anpassen. Sie können auch die offizielle Seite für JSON API Extras besuchen.
Vergleichsmatrix für Headless / entkoppelte CMS (Klicken Sie für eine größere Version)

- JSON-RPC
JSON RPC hilft bei der Durchführung verschiedener Drupal-Aktionen wie dem Leeren des Caches oder dem Versetzen der Website in den Wartungsmodus über die REST API. Die Client-Side-Anwendung kann eine bestimmte Anfrage senden, und dann wird die entsprechende Operation ausgeführt. Dieses Modul kann erweitert werden, um eine gute administrative Kontrolle des CMS über die Client-Anwendung zu ermöglichen.
- Open API
OpenAPI, auch bekannt als Swagger, ist ein Dienstprogramm-Modul, das die mühelose Erkennung von RESTful-Webdiensten über einen OpenAPI-Standard erleichtert. Tools wie Swagger UI, Swagger Code Gen und Paw werden zur Inspektion und zum Testen von Webdiensten verwendet.
Bei Integration mit Open API UI bietet das Open API-Modul Dokumentation für die Endbenutzer-Dokumentation der kompatiblen APIs über eine Frontend-Schnittstelle. Eine UI-Bibliotheksinstallation ist erforderlich, um OpenAPI UIs anzuzeigen. Redoc für OpenAPI UI oder andere ähnliche Module werden dafür empfohlen. Das Diagramm unten zeigt eine OpenAPI UI mit Redoc in Contenta.

- SimpleOauth
Das von Mateu Aguilo Bosch (e0ipso) beigesteuerte SimpleOauth-Modul ist eine Implementierung des OAuth 2.0 Authorization Framework RFC für Drupal, die die Benutzerauthentifizierung über OAuth 2.0 optimiert.


Standardmäßig bietet SimpleOauth einen Passwort-Grant, der vertrauenswürdigen Erstanbieter-Anwendungen den Zugriff auf Drupal-Operationen ermöglicht. Viele andere Grant-Typen werden ebenfalls vom OAuth 2.0 Authorization Framework RFC angeboten. Passwort-Grants sind für ihre umfangreiche Kontrolle bekannt, schaffen aber eine starke Basis für die Authentifizierung in entkoppeltem Drupal.
- Subrequests
Das Subrequest-Modul beschleunigt die Ausführung einer Gruppe von Anfragen und Antworten in einem einzigen Bootstrap, wodurch die Anzahl der Anfragen letztendlich reduziert wird. Anstatt beispielsweise eine Anfrage für einen Node zu senden, gefolgt von den zugehörigen Taxonomiebegriffen des Nodes, wird eine einzige Anfrage gesendet, die die benötigten Daten zurückgibt.
- Consumer Image Styles
Meistens stellen wir Bilder zusammen mit dem Inhalt bereit. Da wir bei der Verwendung von Drupal die Flexibilität von Bildstilen haben, stellen Consumer Image Styles sicher, dass wir eine ähnliche Funktionalität in unserer entkoppelten Anwendung erhalten. Wir können einen spezifischen Bildstil für jeden Verbrauchertyp auswählen und ihn interaktiv anzeigen, ohne die Benutzeroberfläche zu beeinträchtigen.

- Consumers
Gemäß der offiziellen Dokumentation „ermöglichen Consumers es Benutzer:innen, Konsumenten in Drupal zu registrieren. Es ist ein Modul, das entkoppelten Drupal-Setups ermöglicht, Variationen basierend auf dem Konsumenten der Anfrage zu haben. All diese Optionen sind unter einem gemeinsamen Dach gesammelt, sodass andere Projekte sie nutzen können.“
Consumer ist ein sehr hilfreiches Modul, wenn wir verschiedene Arten von Anwendungen, Geräten oder Endpunkten haben, die unsere Daten konsumieren. Es hilft, sie auf der Root-Ebene, d.h. zum Zeitpunkt einer Anfrage, zu unterscheiden. Dies gibt den Entwickler:innen Zeit, eine entsprechende Antwort vorzubereiten. Es kann auch verwendet werden, um nervige Funktionen wie „Dieser Inhalt ist nur in unserer iOS-/Android-Funktionalität verfügbar“ zu erstellen.
- Contenta JS
Contenta JS ermöglicht eine superschnelle Verbindung zu Content-Endpunkten, die als Proxy für Ihr Contenta CMS fungieren. Dies kann bei einer großen Anzahl von Anfragen und häufigen Inhaltsaktualisierungen nützlich sein.
Es kann dazu beitragen, die durch das Bootstrapping in Drupal verursachte Zeit für eine Anfrage zu reduzieren, da alle Ihre Anfragen über einen Node-Server anstatt des eigentlichen CMS bedient werden.
- Decoupled Router
Da die Client-Side-Anwendung nur an Daten vom CMS und nichts anderem interessiert ist, wird es für Website-Builder schwierig, Navigation und Seitenrouten auf der Client-Seite zu verwalten.
Decoupled Router hilft, die Struktur aufrechtzuerhalten, indem es einen Endpunkt bereitstellt, der den genauen Entitätspfad auflöst und die richtigen Daten auf dieser bestimmten Seite anzeigt. Beispielsweise kann die Startseite in der Client-Anwendung mit /node/1 verknüpft werden, und alle Daten von Node 1 können dort angezeigt werden.
- GraphQL
Obwohl Contenta um JSON API herum aufgebaut ist und Sie meistens hören werden, dass Entwickler:innen sich auf JSON konzentrieren, ist GraphQL ein weiteres wichtiges Modul, das beteiligt ist.
Ja, Contenta verfügt über das GraphQL-Modul und die wichtige PHP-Bibliothek webonyx/graphql-php. Dieses Modul hilft dabei, Drupal-Daten über GraphQL-Schema und all die damit verbundenen Vorteile bereitzustellen.
Sehen Sie sich die Alternativen im entkoppelten Drupal-Ökosystem hier an.
Reservoir braucht Gerechtigkeit (Wortspiel beabsichtigt)
Reservoir ist eine weitere Drupal-Distribution, die ähnliche Funktionalitäten wie Contenta bietet. Tatsächlich basieren sowohl Contenta als auch Reservoir auf demselben Satz von Modulen.
Während Contenta bei der Installation umfangreiche Standardinhalte mitbringt (die später deaktiviert werden können), kommt Reservoir mit einer leeren Leinwand, was Ihnen eine andere Benutzeroberfläche bietet (etwas, das möglich ist, wenn Sie Inhalte in Contenta deaktivieren).

Contenta plant, einen Teil der Admin-Benutzeroberfläche von Reservoir zu übernehmen, damit beide auf derselben Komponente aufbauen können (laut einem Dokument von contentacms.org).
Reservoir ist einfach (aber begrenzt) und Contenta ist leistungsstark (aber komplex). Reservoir unterstützt nur Nodes, Node-Typen, Dateien & Benutzer:innen, und das mag für Sie ausreichen. Wenn Sie mehr benötigen, wie Kommentare, Taxonomie, Paragraphs usw., dann ist Contenta Ihre Wahl.

Die Popularität von Reservoir ist in den Hintergrund getreten, da Contenta aktiv beteiligt ist.
Die Zukunft für Reservoir ist daher ungewiss.
Fazit
Wir treten in eine neue Ära von Drupal ein, in der Fortschritte und Experimente ein Wiederaufleben des Interesses innerhalb der Community bewirken werden.
Obwohl Contenta erst seit Kurzem existiert, werden die Begeisterung und die Erkundung der Community es definitiv voranbringen. Im Einklang mit seinem Ziel, die Einstiegshürde für die Entwicklung entkoppelter Drupal-Sites zu senken, treibt es Drupal voran.
Entkopplung ist die Zukunft.
Und Contenta ist definitiv der richtige Weg dafür.
Was ist Ihre Meinung dazu? Teilen Sie Ihre Ansichten auf unseren Social-Media-Kanälen: Facebook, LinkedIn und Twitter. Oder kontaktieren Sie uns unter [email protected], um großartige entkoppelte Projekte zu realisieren.
Abonnieren
Verwandte Blogs
Erkunden von Drupal Single Directory Components: Ein Wendepunkt für Entwickler

Webentwicklung lebt von Effizienz und Organisation, und Drupal, unser Lieblings-CMS, ist mit seiner neuesten Funktion hier,…
7 schnelle Schritte zur Erstellung von API-Dokumentationen mit Postman

Wenn Sie mit APIs arbeiten, kennen Sie wahrscheinlich bereits Postman, den beliebten REST Client, dem unzählige Entwickler…
Was ist der Product Engineering Life Cycle?

Stellen Sie sich vor, Sie bauen ein Haus ohne Bauplan oder Konstruktionszeichnungen. Es wäre schwierig, die Kosten und den…