Aktivieren eines JSON-Exports für eine Komponente

Komponenten können angepasst werden, um einen JSON-Export ihrer Inhalte basierend auf einem Modeler-Framework zu generieren.

Überblick

Der JSON-Export basiert auf Sling-Modellen und auf dem Framework des Sling Model Exporter (der sich wiederum auf Jackson-Anmerkungen stützt).

Das bedeutet, dass die Komponente über ein Sling-Modell verfügen muss, wenn JSON exportiert werden soll. Deshalb müssen Sie diese beiden Schritte befolgen, um einen JSON-Export für eine beliebige Komponente zu aktivieren.

Definieren eines Sling-Modells für die Komponente

Zunächst muss ein Sling-Modell für die Komponente definiert werden.

HINWEIS

Ein Beispiel für die Verwendung von Sling-Modellen finden Sie im Artikel Entwickeln von Sling Model Exportern in AEM.

Die Implementierungsklasse des Sling-Modells muss wie folgt kommentiert werden:

@Model(... adapters = {..., ComponentExporter.class})
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
@JsonSerialize(as = MyComponent.class)

Dadurch wird sichergestellt, dass Ihre Komponente mit dem .model-Selektor und der .json-Erweiterung eigenständig exportiert werden kann.

Außerdem kann die Sling-Modell-Klasse dadurch in der ComponentExporter-Oberfläche übernommen werden.

HINWEIS

Jackson-Anmerkungen werden in der Regel nicht auf der Ebene der Sling-Modell-Klasse festgelegt, sondern auf der Ebene der Modell-Oberfläche. Damit wird sichergestellt, dass der JSON-Export als Teil der Komponenten-API gewertet wird.

HINWEIS

Die Klassen ExporterConstants und ComponentExporter stammen aus dem com.adobe.cq.export.json-Paket.

Verwenden mehrerer Selektoren

Obwohl dies kein Standardanwendungsfall ist, können zusätzlich zum model-Selektor mehrere Selektoren konfiguriert werden.

https://<server>:<port>/content/page.model.selector1.selector2.json

In einem solchen Fall muss der model-Selektor jedoch der erste Selektor und .json die Erweiterung sein.

Kommentieren der Sling-Modell-Oberfläche

Damit sie im JSON Exporter-Framework beachtet wird, sollte die ComponentExporter-Oberfläche (oder ContainerExporter bei Container-Komponenten) in der Modelloberfläche implementiert werden.

Für die entsprechende Sling-Modell-Oberfläche (MyComponent) wird in diesem Fall über Jackson-Anmerkungen definiert, wie sie exportiert (serialisiert) werden soll.

Es müssen die richtigen Anmerkungen für die Modell-Oberfläche angewendet werden, um zu definieren, welche Methoden serialisiert werden sollen. Standardmäßig werden alle Methoden serialisiert, die die gängigen Benennungskonventionen für Abfragemethoden einhalten. Ihre JSON-Eigenschaftsnamen werden dabei naturgemäß von den Namen der Abfragemethode abgeleitet. Um dies zu vermeiden bzw. zu überschreiben, benennen Sie die JSON-Eigenschaft mit @JsonIgnore oder @JsonProperty um.

Beispiel

Die Kernkomponenten unterstützen den JSON-Export und können als Referenz verwendet werden.

Ein Beispiel ist die Sling-Modell-Implementierung der Bild-Kernkomponente und deren kommentierte Oberfläche.

Weitere Informationen finden Sie unter:

Auf dieser Seite

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now