- Sept. 23, 2016
- --
Kopfloses oder vollwertiges CMS: Magnolia bietet alle Lösungen
Magnolia in Aktion
Unser Expertenteam zeigt Ihnen live, was Magnolia für Sie leisten kann.
Jetzt Demo buchenHeadless CMS war in den letzten Jahren eines der heißesten Themen (einen vollständigen Überblick darüber, was ein Headless CMS ist, finden Sie in unserem Blog). Wenn Sie einen Headless-Ansatz für Ihr nächstes Projekt in Erwägung ziehen, sollten Sie sich zunächst Gedanken über Ihre Motivation machen. Es gibt Anwendungsfälle, in denen ein reines Headless CMS wie Contentful ausreicht, und da ein solches System in seinem Funktionsumfang sehr begrenzt ist, ist es supereinfach zu starten, was seine Anziehungskraft auf Frontend-Entwickler und seinen schnellen Aufstieg zu Ruhm und Reichtum erklärt. Vergleichen Sie ein Headless CMS mit einem Skateboard: Manchmal ist ein Skateboard der schnellste und billigste Weg, um zum Laden um die Ecke zu kommen und ein Bier zu holen. Es ist aus vielen Gründen großartig, aber wenn Sie Ihre Familie in einen zweiwöchigen Strandurlaub bringen müssen, wäre ein SUV die bessere Wahl.
Aus der Sicht eines Enterprise-CMS-Anbieters bieten die heutigen reinen Headless-Player nur sehr wenig CMS-Funktionalität. Sie können Ihre Datenstruktur definieren, Daten in der Cloud speichern , über eine REST-API auf diese Daten zugreifen und optional eine Benutzeroberfläche zur Eingabe und Bearbeitung dieser Daten bereitstellen. Der Schwerpunkt liegt auf völliger Einfachheit, insbesondere bei der Einrichtung - da die Anbieter Cloud-Lösungen anbieten, ist fast keine Einrichtung erforderlich. Typische Anwendungsfälle wären ein Backend für eine mobile App, die Einbindung von Inhalten in transaktionsorientierte Systeme oder alles, was strukturierte Daten verwalten und über eine API abrufen muss.
Sobald Ihre CMS-Anforderungen etwas umfangreicher werden - und das werden sie im Laufe der Zeit fast immer -, lassen die aktuellen Headless-CMS Sie im Regen stehen. Am anderen Ende des Spektrums gibt es typischerweise komplexe Enterprise-CMS, die viel mehr abdecken, aber komplex einzurichten, zu entwickeln und zu betreiben sind.
Das ist Magnolia. Bei Magnolia ging es schon immer darum, ein Höchstmaß an Flexibilität zu bieten und gleichzeitig die zugrunde liegende Komplexität vor den Nutzern zu verbergen. Das gilt auch für Headless-Anwendungsfälle. Die Verwendung von Magnolia als Headless CMS ist für Frontend-Entwickler einfach, bietet aber den zusätzlichen Vorteil, dass Sie Ihre zukünftigen Anforderungen mit Magnolia abdecken können, egal wie sie aussehen.
Hier ist eine kurze Einführung, wie Sie Magnolia Headless in wenigen Minuten nutzen können. Wir schauen uns die verschiedenen Aspekte eines Headless CMS an und wie diese mit Magnolia abgedeckt werden.
Enterprise Headless CMS: Find the perfect fit
Download this free white paper on headless CMS and learn how to find the best fit for your business.
Inhalts-Apps: Magnolias Art, Datentypen und deren Speicherung zu definieren
Mit Version 5 hat Magnolia das Konzept der Apps eingeführt. Wie bei Smartphone-Apps handelt es sich dabei um aufgabenorientierte Einheiten, mit denen Sie Magnolia nach Ihren Wünschen anpassen können. In der einfachsten Form, als "Content App", müssen Sie nur eine Reihe von Feldern definieren, die Sie bearbeiten möchten (denken Sie an "Formulardefinition"), Ihrer App einen Namen geben und Magnolia stellt die gesamte Infrastruktur zur Verwaltung dieses Inhaltstyps bereit. Mit anderen Worten, eine Content App ist eine Benutzeroberfläche, mit der Sie einen Inhaltstyp verwalten können. Hier ist ein Beispiel für die Listenansicht der App "Cars":
Und das entsprechende Formular zur Bearbeitung des aktuellen Eintrags (die "Detailansicht"):
Die Definition eines Inhaltstyps und die Bereitstellung einer Benutzeroberfläche ist genau wie bei einem Headless CMS, nur viel besser. Zunächst einmal stellen wir 17 verschiedene Felder zur Verfügung, darunter das einfache Textfeld, ein Rich-Text-Feld oder das DAM-Feld zur Verwaltung von Bildern. Darüber hinaus haben wir einige sehr leistungsstarke Felder wie dieses zweispaltige Feld, mit dem Sie ganz einfach eine Teilmenge aus einer großen Menge von Werten auswählen können:
Was die Feldtypen angeht, hat Magnolia eindeutig mehr zu bieten als ein typisches Headless CMS. Und es gibt noch mehr: Wenn Sie Bedarf haben, können Sie Ihre eigenen Feldtypen erstellen (und diese können Daten von überall her bekommen, zum Beispiel das Laden von Video-Metadaten von Youtube, aber wir wollen jetzt nicht voreilig sein ;-)).
Wie definieren Sie den Inhaltstyp überhaupt? Für Frontend-Entwickler könnten Sie einfach ein paar Dateien erstellen und die benötigten Felder definieren.
Noch einfacher ist es, Magnolia zu starten, die Groovy Console App zu verwenden und ein Skript namens "createAppScript" auszuführen.
Mit diesem Skript können Sie eine Reihe von Parametern einstellen. Sobald Sie auf "Ausführen" klicken, dauert es nur Sekunden, um eine neue App zu erstellen, die sofort funktioniert. Wenn Sie jetzt nur eine App erstellen und über die REST-API darauf zugreifen möchten, können Sie zum Abschnitt "Kopfloser Zugriff auf den Inhalt" weiter unten übergehen.
Hier ist ein Beispiel für eine solche Anwendung, die zur Veranschaulichung mit einem orangefarbenen Rahmen hervorgehoben ist. Sie funktioniert und fühlt sich an wie jede andere App in Magnolia.
Anpassen Ihrer App
In Magnolia können Sie jede App als YAML-Datei exportieren, was Sie als Nächstes tun sollten, wenn Sie für weitere Anpassungen auf Dateisystembasis arbeiten wollen. (Hinweis: Sie können die Typen auch direkt in Magnolia über die Konfigurations-App definieren, aber das ist nicht der Punkt dieses Blogposts, da dies der Modus ist, den Magnolia seit 2003 anbietet).
Sobald Sie die YAML-Datei haben, legen Sie sie in einem Light Module ab. Ein Light Module ist lediglich eine Ordnerstruktur in Ihrem Dateisystem, mit der Sie Vorlagendefinitionen, Komponenten, CSS-Dateien, Javascript und andere Ressourcen hinzufügen und verwalten können. Da alles auf dem Dateisystem basiert, ist es einfach zu handhaben und erfordert keine speziellen Werkzeuge. Sie können dafür Ihren bevorzugten Editor verwenden.
Als Frontend-Entwickler verwenden Sie in der Regel node.js und NPM, die von Magnolia vollständig unterstützt werden. Der einfachste Weg, eine Light-Modul-Ordnerstruktur zu erstellen, ist die Verwendung des von Magnolia bereitgestellten CLI-Tools. Magnolia CLI ist ein npm-Paket, das ein Kommandozeilen-Interface (CLI) bereitstellt, um die Light-Entwicklung mit Magnolia einzurichten und zu erleichtern. Das Magnolia-CLI-Tool läuft auf Node.js.
Nachdem Sie nun eine App definiert und zusätzlich ein Light-Modul zur Anpassung erstellt haben, können Sie direkt im Dateisystem Felder hinzufügen und ändern. Das Einzige, was noch fehlt, ist der Zugriff auf diese Inhalte über den Client.
Kopfloser Zugriff auf den Inhalt
Der REST-Webdienst von Magnolia ermöglicht es Ihnen, Inhalte über eine Web-API zu bearbeiten. Sie können Knoten im Repository erstellen, lesen, aktualisieren und löschen. Knoten können Seiten, Komponenten, Kontakte oder andere Elemente sein, die in einem benannten Arbeitsbereich gespeichert sind. Sie können auch Befehle zum Aktivieren, Exportieren und Importieren von Inhalten ausführen. Wie Sie sehen, ermöglicht diese Flexibilität, Magnolia als Headless-System nicht nur zum Lesen, sondern auch zum Erstellen von Inhalten zu nutzen.
Für den typischen Anwendungsfall in einem Headless-Szenario möchten Sie Inhaltselemente lesen. Sie könnten zum Beispiel die Seite "About" von unserer Demo-Site lesen, indem Sie den folgenden Befehl eingeben (vorausgesetzt, die Sicherheit ist so eingestellt, dass Lesezugriff über den REST-Aufruf möglich ist): http://localhost:8080/magnoliaAuthor/.rest/nodes/v1/website/travel/about
Um den anonymen REST-API-Zugang zu ermöglichen (keine gute Idee in der Produktion), fügen Sie einfach die Rolle "rest" zum Benutzer "anonymous" hinzu.
Magnolia bietet eine hervorragende Unterstützung für den Zugriff über die REST-API, einschließlich einer vollständigen Sicherheitsimplementierung, mit der Sie fein abstimmen können, welche Rolle welche Aktionen durchführen darf, oder definieren können, welche Nutzer der API Zugriff erhalten. Wir haben auch eine ausführliche Dokumentation und bieten Swagger, um die API direkt in Magnolia zu testen.
Mit unserer Swagger-App können Sie sogar eigene URL-Muster definieren, wenn Ihnen unsere Standardmuster nicht gefallen. Probieren Sie das mit Ihrem aktuellen Headless CMS aus!
Wolke
Zum jetzigen Zeitpunkt ist Magnolia nur "on Premise" verfügbar. Dies kann ein Nachteil für Front-End-Entwickler sein, wenn man es mit dem Cloud-Zugang vergleicht, den reine Headless-CMS-Systeme bieten. Wenn Sie jedoch eine IT-Abteilung haben, die Magnolia für Sie bereitstellen kann, dann ist das kein Problem. Und ab November 2016 wird unser Cloud-Angebot Magnolia NOW verfügbar sein, um es unseren Kunden noch einfacher zu machen, Magnolia als Headless - oder Headful - CMS zu nutzen.
Nachbereitung
Ich hoffe, dass Ihnen dieser kleine Ausflug in die Headless-Fähigkeiten von Magnolia gefallen hat und Sie mir zustimmen, dass die Verwendung von Magnolia als Headless-CMS sowohl gut unterstützt als auch sehr leistungsfähig ist. Von unserem Ende des CMS-Spektrums aus gesehen, ist die Erstellung einer Standard-UI natürlich nur der Anfang. Das Tolle für Sie ist, dass es keine Grenzen gibt, wohin Sie Magnolia bringen können, sobald Sie tiefer in die Materie eintauchen. Viel Spaß auf der Reise!
PS: Hier ist ein Video von der Magnolia-Konferenz 2016, das Ihnen den gesamten Prozess zeigt: