Abilitazione dell’esportazione JSON per un componente enabling-json-export-for-a-component

CAUTION
AEM 6.4 ha raggiunto la fine del supporto esteso e questa documentazione non viene più aggiornata. Per maggiori dettagli, consulta la nostra periodi di assistenza tecnica. Trova le versioni supportate qui.

I componenti possono essere adattati per generare l’esportazione JSON dei loro contenuti in base a un framework di modeling.

Panoramica overview

L’esportazione JSON è basata su Modelli Slinge Esportatore di modelli Sling quadro (su cui si basa Annotazioni Jackson).

Questo significa che il componente deve avere un modello Sling se deve esportare JSON. Pertanto, dovrai seguire questi due passaggi per abilitare l’esportazione JSON su qualsiasi componente.

Definire un modello Sling per il componente define-a-sling-model-for-the-component

Innanzitutto, per il componente deve essere definito un modello Sling.

NOTE
Per un esempio di utilizzo dei modelli Sling, consulta l’articolo Sviluppo di esportatori di modelli Sling in AEM.

La classe di implementazione del modello Sling deve essere annotata con quanto segue:

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

In questo modo, il componente può essere esportato autonomamente, utilizzando .model selettore e .json estensione.

Inoltre, questo specifica che la classe Sling Model può essere adattata nel ComponentExporter interfaccia.

NOTE
Le annotazioni Jackson non vengono solitamente specificate a livello di classe Sling Model, ma a livello di interfaccia Model. In questo modo, l’esportazione JSON viene considerata come parte dell’API del componente.
NOTE
La ExporterConstants e ComponentExporter le lezioni vengono da com.adobe.cq.export.json pacchetto.

Utilizzo di più selettori multiple-selectors

Sebbene non sia un caso d’uso standard, è possibile configurare più selettori in aggiunta al model selettore.

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

Tuttavia, in tal caso, model Il selettore deve essere il primo selettore e l'estensione deve essere .json.

Annotare l’interfaccia del modello Sling annotate-the-sling-model-interface

Per essere presi in considerazione dal framework JSON Exporter, l'interfaccia Model dovrebbe implementare il ComponentExporter o ContainerExporter, nel caso di un componente contenitore).

L'interfaccia del modello Sling corrispondente ( MyComponent) viene quindi annotata utilizzando Annotazioni Jackson per definire come esportare (serializzato).

Per definire quali metodi devono essere serializzati, è necessario annotare correttamente l’interfaccia Model. Per impostazione predefinita, tutti i metodi che rispettano la convenzione di denominazione usuale per i getter verranno serializzati e deriveranno naturalmente i loro nomi di proprietà JSON dai nomi dei getter. Questo può essere impedito o sostituito con @JsonIgnore o @JsonProperty per rinominare la proprietà JSON.

Esempio example

I componenti core supportano l’esportazione JSON a partire dalla versione 1.1.0 dei componenti core e può essere utilizzato come riferimento.

Per un esempio, vedi l’implementazione del modello Sling del componente di base immagine e la relativa interfaccia annotata.

CODICE SU GITHUB

Puoi trovare il codice di questa pagina su GitHub

Documentazione correlata related-documentation

Per maggiori dettagli vedi:

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