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 trabajo del modelador.
Información general overview
La exportación de JSON se basa en Modelos Sling, y en el Exportador del modelo Sling marco de trabajo (que se basa en Anotaciones de Jackson).
Esto significa que el componente debe tener un modelo Sling si debe exportar JSON. Por lo tanto, siga estos dos pasos para habilitar la exportación de JSON en cualquier componente.
Definir un modelo Sling para el componente define-a-sling-model-for-the-component
En primer lugar, se debe definir un modelo Sling para el componente.
La clase de implementación del modelo 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 solo, utilizando .model
y el .json
extensión.
Además, esto especifica que la clase de modelo Sling se puede adaptar en la variable 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 de la variable model
selector.
https://<server>:<port>/content/page.model.selector1.selector2.json
Sin embargo, en tal caso, la variable model
el selector 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 el ComponentExporter
interfaz (o ContainerExporter
, si hay un componente contenedor).
La interfaz del modelo Sling correspondiente ( MyComponent
) se anotaría usando Anotaciones de Jackson para definir cómo se debe exportar (serializar).
La interfaz del modelo debe estar anotada correctamente para definir qué métodos se deben serializar. De forma predeterminada, todos los métodos que respetan la convención de nombres habitual de los captadores se serializan y derivan sus nombres de propiedades JSON de forma natural de los nombres de captadores. Esto se puede evitar o sobrescribir mediante @JsonIgnore
o @JsonProperty
para cambiar el nombre de la propiedad JSON.
Ejemplos example
Los componentes principales admiten la exportación de JSON desde el lanzamiento 1.1.0 de los componentes principales y se puede utilizar como referencia.
Para ver un ejemplo, consulte la implementación del modelo Sling del componente principal de imagen y su interfaz anotada.
CÓDIGO EN 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 lo siguiente: