In diesem Teil der AEM Headless-Entwickler-Tour erfahren Sie, wie Sie Ihre Inhaltsstruktur modellieren. Setzen Sie dann diese Struktur für Adobe Experience Manager (AEM) mithilfe von Inhaltsfragmentmodellen und Inhaltsfragmenten um, um sie kanalübergreifend wiederzuverwenden.
Zu Beginn wurde in Erfahren Sie mehr über CMS-Headless-Bereitstellung die Headless-Bereitstellung von Inhalten behandelt und erläutert, warum diese eingesetzt werden sollte. Dann wurde in Erste Schritte mit AEM Headless as a Cloud Service AEM Headless im Kontext Ihres eigenen Projekts beschrieben…
Im vorherigen Dokument der AEM Headless-Tour, Der Weg zu Ihrem ersten Erlebnis mit AEM Headless haben Sie dann die Schritte kennengelernt, die zur Implementierung Ihres ersten Projekts erforderlich sind. Nach dem Lesen sollten Sie:
Dieser Artikel baut auf diesen Grundlagen auf, sodass Sie verstehen, wie Sie Ihr eigenes AEM Headless-Projekt vorbereiten.
Die Datenmodellierung ist ein sehr großes Feld, da sie bei der Entwicklung von relationalen Datenbanken verwendet wird. Es gibt viele Bücher und Online-Informationsquellen dazu.
Wir werden nur die Aspekte berücksichtigen, die bei der Modellierung von Daten für die Verwendung mit AEM Headless von Interesse sind.
Die Welt da draußen ist groß und schlecht.
Vielleicht, aber vielleicht nicht. Es ist sicherlich eine kompliziert -Welt da draußen und Datenmodellierung wird verwendet, um eine vereinfachte Darstellung eines sehr (sehr) kleinen Unterabschnitts zu definieren, wobei die spezifischen Informationen verwendet werden, die für einen bestimmten Zweck benötigt werden.
Da sich AEM mit Inhalten beschäftigt, bezeichnen wir die Datenmodellierung als Inhaltsmodellierung.
Beispiel:
Es gibt viele Schulen, aber alle haben verschiedene Gemeinsamkeiten:
Selbst in einem so kleinen Beispiel kann die Liste endlos erscheinen. Wenn Ihr Programm jedoch nur eine einfache Aufgabe ausführen soll, müssen Sie die Informationen auf das Wichtigste beschränken.
Beispielsweise Werbung für Sonderveranstaltungen für alle Schulen in der Region:
Was Sie beschreiben möchten, wird als Entitäten bezeichnet – im Grunde die „Dinge“, über die wir Informationen speichern möchten.
Die Informationen, die wir über sie speichern wollen, sind die Attribute (Eigenschaften), wie z. B. Name und Qualifikationen für die Lehrer.
Dann gibt es verschiedene Beziehungen zwischen den Entitäten. Beispielsweise hat eine Schule in der Regel nur eine(n) Schulleiter(in) und viele Lehrkräfte (und normalerweise ist der Schulleiter auch Lehrer).
Der Prozess der Analyse und Definition dieser Informationen zusammen mit den Beziehungen zwischen ihnen wird als Inhaltsmodellierung bezeichnet.
Häufig müssen Sie zunächst ein Konzeptschema erstellen, in dem die Entitäten und ihre Beziehungen beschrieben werden. Normalerweise handelt es sich hierbei um einen allgemeinen (konzeptionellen) Ansatz.
Sobald dies stabil ist, können Sie die Modelle in ein logisches Schema übersetzen, das die Entitäten zusammen mit den Attributen und den Beziehungen beschreibt. Auf dieser Ebene sollten Sie die Definitionen genau prüfen, um Duplikate zu vermeiden und Ihren Entwurf zu optimieren.
Manchmal werden diese beiden Schritte zusammengeführt, was häufig von der Komplexität Ihres Szenarios abhängt.
Benötigen Sie beispielsweise separate Entitäten für Head Teacher
und Teacher
oder einfach ein zusätzliches Attribut im Teacher
-Modell?
Datenintegrität ist erforderlich, um die Genauigkeit und Konsistenz Ihrer Inhalte über den gesamten Lebenszyklus hinweg zu gewährleisten. Dazu gehört auch, sicherzustellen, dass Autoren von Inhalten leicht verstehen können, was wo gespeichert werden soll. Daher ist Folgendes wichtig:
Datenredundanz tritt auf, wenn dieselben Informationen zweimal in der Inhaltsstruktur gespeichert werden. Dies sollte vermieden werden, da es zu Verwirrung bei der Erstellung des Inhalts und zu Fehlern bei Abfragen führen kann, ganz zu schweigen von der schlechten Nutzung des Speicherplatzes.
Durch die Optimierung Ihrer Struktur können Sie die Leistung sowohl bei der Inhaltserstellung als auch bei Abfragen verbessern.
Alles ist ein Balanceakt, aber das Erstellen einer Struktur, die zu komplex ist oder zu viele Ebenen hat, kann:
für Autoren, die den Inhalt generieren, verwirrend sein,
die Leistung stark beeinträchtigen, wenn die Abfrage auf mehrere verschachtelte (referenzierte) Inhaltsfragmente zugreifen muss, um die gewünschten Inhalte abzurufen.
Die Datenmodellierung ist eine Reihe etablierter Techniken, die häufig bei der Entwicklung von relationalen Datenbanken verwendet werden. Was bedeutet die Inhaltsmodellierung also für AEM Headless?
Um sicherzustellen, dass Ihr Programm die erforderlichen Inhalte konsistent und effizient von AEM anfragen und empfangen kann, müssen diese Inhalte strukturiert sein.
Das bedeutet, dass Ihr Programm die Form der Antwort im Voraus kennt und daher weiß, wie sie verarbeitet wird. Dies ist viel einfacher als das Empfangen von Freiforminhalten, die geparst werden müssen, um festzustellen, was sie enthalten und wie sie daraus folgend verwendet werden können.
AEM verwendet Inhaltsfragmente, um die Strukturen bereitzustellen, die für die Headless-Bereitstellung Ihrer Inhalte an Ihre Programme erforderlich sind.
Die Struktur Ihres Inhaltsmodells wird:
Die Inhaltsfragmentmodelle werden auch als Grundlage für die AEM-GraphQL-Schemata verwendet, die zum Abrufen Ihres Inhalts verwendet werden – mehr dazu in einer späteren Sitzung.
Anfragen für Ihre Inhalte werden mit der AEM-GraphQL-API gestellt, einer angepassten Implementierung der standardmäßigen GraphQL-API. Mit der AEM GraphQL-API können Sie (komplexe) Abfragen Ihrer Inhaltsfragmente durchführen, wobei jede Abfrage einem bestimmten Modelltyp entspricht.
Die zurückgegebenen Inhalte können dann von Ihren Programmen verwendet werden.
Inhaltsfragmentmodelle bieten verschiedene Mechanismen, mit denen Sie die Struktur Ihrer Inhalte definieren können.
Ein Inhaltsfragmentmodell beschreibt eine Entität.
Um neue Modelle erstellen zu können, müssen Sie die Funktion für Inhaltsfragmente im Konfigurations-Browser aktivieren.
Das Modell sollte so benannt werden, dass der Inhaltsautor weiß, welches Modell er beim Erstellen eines Inhaltsfragments auswählen soll.
Innerhalb eines Modells:
Beispiel:
AEM stellt die folgenden Datentypen bereit, mit denen Sie Ihren Inhalt modellieren können:
Zwei Datentypen bieten Verweise auf Inhalte außerhalb eines bestimmten Fragments:
Inhaltsreferenz
Dies bietet einen einfachen Verweis auf andere Inhalte beliebigen Typs.
Sie können beispielsweise auf ein Bild an einer bestimmten Stelle verweisen.
Fragmentreferenz
Dies bietet Verweise auf andere Inhaltsfragmente.
Dieser Referenztyp wird verwendet, um verschachtelte Inhalte zu erstellen und die Beziehungen einzuführen, die zum Modellieren Ihres Inhalts erforderlich sind.
Der Datentyp kann so konfiguriert werden, dass Fragmentautoren folgende Möglichkeiten haben:
Ganz am Anfang müssen Sie Inhaltsfragmentmodelle für Ihre Website aktivieren. Dies erfolgt im Konfigurations-Browser unter „Tools“ > „Allgemein“ > „Konfigurations-Browser“. Sie können entweder den globalen Eintrag konfigurieren oder eine neue Konfiguration erstellen. Beispiel:
Siehe „Zusätzliche Ressourcen – Inhaltsfragmente im Konfigurations-Browser“
Anschließend können die Inhaltsfragmentmodelle erstellt und die Struktur definiert werden. Dies kann unter Tools -> Allgemein -> Inhaltsfragmentmodelle erfolgen. Beispiel:
Siehe „Zusätzliche Ressourcen – Inhaltsfragmentmodelle“.
Inhaltsfragmente basieren immer auf einem Inhaltsfragmentmodell. Das Modell stellt die Struktur bereit, das Fragment enthält den Inhalt.
Der erste Schritt zur tatsächlichen Erstellung Ihrer Inhalte besteht darin, ein Inhaltsfragment zu erstellen. Dazu verwenden Sie „Erstellen“ > „Inhaltsfragment“ unter „Assets“ > „Dateien“ im erforderlichen Ordner. Der Assistent führt Sie durch die Schritte.
Ein Inhaltsfragment basiert auf einem bestimmten Inhaltsfragmentmodell, das Sie als ersten Schritt des Erstellungsprozesses auswählen.
Nachdem das Fragment erstellt wurde, können Sie es im Inhaltsfragment-Editor öffnen. Folgende Informationen/Optionen sind verfügbar:
Nach Auswahl des entsprechenden Modells wird ein Inhaltsfragment zur Bearbeitung im Inhaltsfragment-Editor geöffnet:
Siehe „Zusätzliche Ressourcen – Arbeiten mit Inhaltsfragmenten“.
Eine einfache Struktur als Beispiel finden Sie unter „Beispielstruktur für Inhaltsfragmente“.
Nachdem Sie nun gelernt haben, wie Sie Ihre Struktur modellieren und abhängig davon Inhalte erstellen, besteht der nächste Schritt hierin: Erfahren Sie, wie Sie mit GraphQL-Abfragen auf Ihre Inhaltsfragmente zugreifen und diese abrufen können. Dort wird GraphQL eingeführt und besprochen und dann werden einige Beispielabfragen angezeigt, um zu zeigen, wie die Dinge in der Praxis funktionieren.