Activación de la exportación de JSON para un componente enabling-json-export-for-a-component
Los componentes se pueden adaptar para generar la exportación JSON de su contenido en función de un marco de modelos.
Información general overview
La exportación de JSON se basa en Modelos de Sling, y en el Exportador de modelo Sling marco (que en sí mismo se basa en Anotaciones de Jackson).
Esto significa que el componente debe tener un modelo de Sling si necesita exportar JSON. Por lo tanto, debe seguir estos dos pasos para habilitar la exportación de JSON en cualquier componente.
Definir un modelo de Sling para el componente define-a-sling-model-for-the-component
Primero debe definirse un modelo de Sling para el componente.
La clase de implementación del modelo de Sling debe estar anotada con lo siguiente:
@Model(... adapters = {..., ComponentExporter.class})
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
@JsonSerialize(as = MyComponent.class)
Esto garantiza que el componente se pueda exportar por su cuenta, utilizando la variable .model
y .json
extensión.
Además, esto especifica que la clase del Modelo Sling se puede adaptar a la ComponentExporter
interfaz.
ExporterConstants
y ComponentExporter
las clases provienen de com.adobe.cq.export.json
paquete.Uso de varios selectores multiple-selectors
Aunque no es un caso de uso estándar, es posible configurar varios selectores además del model
selector.
https://<server>:<port>/content/page.model.selector1.selector2.json
Sin embargo, en tal caso, el model
debe ser el primer selector y la extensión debe ser .json
.
Anotar la interfaz del modelo Sling annotate-the-sling-model-interface
Para que el marco del exportador JSON lo tenga en cuenta, la interfaz del modelo debe implementar la variable ComponentExporter
interfaz (o ContainerExporter
, en el caso de un componente contenedor).
La interfaz del modelo de Sling correspondiente ( MyComponent
) se anotaría usando Anotaciones de Jackson para definir cómo se debe exportar (serializado).
La interfaz del modelo debe estar debidamente anotada para definir qué métodos deben serializarse. De forma predeterminada, todos los métodos que respetan la convención de nombres habitual para los captadores se serializarán y derivarán sus nombres de propiedades JSON de forma natural de los nombres de los captadores. Esto se puede evitar o anular utilizando @JsonIgnore
o @JsonProperty
para cambiar el nombre de la propiedad JSON.
Ejemplo example
Los componentes principales son compatibles con la exportación de JSON desde la versión 1.1.0 de los componentes principales y pueden utilizarse como referencia.
Para ver un ejemplo, consulte la implementación del modelo Sling del componente principal de imagen y su interfaz anotada.
CÓDIGO DE GITHUB
Puede encontrar el código de esta página en GitHub
- Abra el proyecto aem-core-wcm-components en GitHub
- Descargue el proyecto como un archivo ZIP
Documentación relacionada related-documentation
Para obtener más información, consulte: