Abilitazione dell’esportazione JSON per un componente enabling-json-export-for-a-component
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.
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.
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
- Apri il progetto aem-core-wcm-components su GitHub
- Scarica il progetto come un file ZIP
Documentazione correlata related-documentation
Per maggiori dettagli vedi: