Aktivera JSON-export för en komponent enabling-json-export-for-a-component

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

Komponenter kan anpassas för att generera JSON-export av deras innehåll baserat på ett modellramverk.

Översikt overview

JSON-exporten baseras på Sling Modelsoch på Export av försäljningsmodell som i sig förlitar sig på Jackson annotations).

Det innebär att komponenten måste ha en Sling-modell om den behöver exportera JSON. Därför måste du följa dessa två steg för att aktivera JSON-export för alla komponenter.

Definiera en delningsmodell för komponenten define-a-sling-model-for-the-component

Först måste en segmentmodell definieras för komponenten.

NOTE
Ett exempel på hur du använder modeller finns i artikeln Utveckla export av försäljningsmodeller i AEM.

Implementeringsklassen för Sling-modellen måste kommenteras med följande:

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

Detta garanterar att komponenten kan exporteras fristående med .model väljaren och .json tillägg.

Dessutom anger detta att klassen Sling Model kan anpassas till ComponentExporter gränssnitt.

NOTE
Jackson-anteckningar anges vanligtvis inte på klassnivå för Sling Model, utan på gränssnittsnivå för Model. Detta för att säkerställa att JSON-exporten betraktas som en del av komponent-API:t.
NOTE
The ExporterConstants och ComponentExporter klasserna kommer från com.adobe.cq.export.json paket.

Använda flera väljare multiple-selectors

Även om det inte är ett standardanvändningsfall är det möjligt att konfigurera flera väljare förutom model väljare.

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

I sådana fall gäller dock att model väljaren måste vara den första väljaren och tillägget måste vara .json.

Anteckna gränssnittet för segmenteringsmodellen annotate-the-sling-model-interface

Modellgränssnittet bör implementera ComponentExporter gränssnitt (eller ContainerExporter, om det är en behållarkomponent).

Motsvarande Sling Model-gränssnitt ( MyComponent) kommenteras sedan med Jackson annotations för att definiera hur den ska exporteras (serialiseras).

Modellgränssnittet måste kommenteras ordentligt för att definiera vilka metoder som ska serialiseras. Som standard kommer alla metoder som respekterar den vanliga namnkonventionen för get-ters att serialiseras och härleder sina JSON-egenskapsnamn naturligt från get-namnen. Detta kan förhindras eller åsidosättas med @JsonIgnore eller @JsonProperty för att byta namn på JSON-egenskapen.

Exempel example

Core Components har stöd för JSON-export sedan lanseringen 1.1.0 av kärnkomponenterna och kan användas som referens.

Ett exempel finns i Sling Model-implementeringen av Image Core-komponenten och dess kommenterade gränssnitt.

KOD PÅ GITHUB

Koden för den här sidan finns på GitHub

Relaterad dokumentation related-documentation

Mer information finns i:

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e