Personalización del lado del servidor

Elementos básicos de las funciones de ⇐ Personalización del cliente
Manillares de SCF Ayudantes

API de Java

Nota

La ubicación del paquete de las API de Communities está sujeta a cambios al actualizar de una versión principal a otra.

Interfaz de SocialComponent

SocialComponents son POJO que representan un recurso para una función de AEM Communities. Lo ideal es que cada componente de Social represente un resourceType específico con GETters expuestos que proporcionen datos al cliente para que el recurso se represente con precisión. Toda la lógica empresarial y la lógica de vista se encapsulan en SocialComponent, incluida la información de la sesión del visitante del sitio, si es necesario.

La interfaz define un conjunto básico de GETters que son necesarios para representar un recurso. Es importante destacar que la interfaz estipula los métodos Map<String, Object> getAsMap() y String toJSONString() que son necesarios para procesar las plantillas Handlebars y exponer los extremos de GET JSON para los recursos.

Todas las clases de SocialComponent deben implementar la interfaz com.adobe.cq.social.scf.SocialComponent

Interfaz de SocialCollectionComponent

La interfaz SocialCollectionComponent amplía la interfaz de SocialComponent para representar mejor los recursos que son colecciones de otros recursos.

Todas las clases de SocialCollectionComponent deben implementar la interfaz com.adobe.cq.social.scf.SocialCollectionComponent

Interfaz de SocialComponentFactory

SocialComponentFactory (fábrica) registra un componente de Social con el marco. La fábrica proporciona un medio para permitir que la estructura sepa qué componentes de Social están disponibles para un recursoType determinado y su prioridad de clasificación&ast; cuando se identifican varios componentes de Social.

SocialComponentFactory es responsable de crear una instancia del componente SocialComponent seleccionado, lo que permite inyectar todas las dependencias necesarias para el componente Social desde la fábrica mediante prácticas de ID.

SocialComponentFactory es un servicio OSGi y tiene acceso a otros servicios OSGi que se pueden pasar a SocialComponent a través de un constructor.

Todas las clases de SocialComponentFactory deben implementar la interfaz com.adobe.cq.social.scf.SocialComponentFactory

Una implementación del método SocialComponentFactory.getPriority() debe devolver el valor más alto para que la fábrica se utilice para el resourceType dado como lo devuelve getResourceType().

Interfaz de SocialComponentFactoryManager

SocialComponentFactoryManager (administrador) administra todos los componentes de Social registrados en la estructura y es responsable de seleccionar SocialComponentFactory para usar en un recurso determinado (resourceType). Si no hay fábricas registradas para un resourceType específico, el administrador devolverá una fábrica con el supertipo más cercano para el recurso determinado.

SocialComponentFactoryManager es un servicio OSGi y tiene acceso a otros servicios OSGi que se pueden pasar a SocialComponent a través de un constructor.

Se obtiene un identificador del servicio OSGi invocando com.adobe.cq.social.scf.SocialComponentFactoryManager

API HTTP: solicitudes de POST

Clase PostOperation

Los extremos del POST de API HTTP son clases PostOperation definidas mediante la implementación de la SlingPostOperationinterfaz (paquete org.apache.sling.servlets.post).

La implementación de PostOperationextremo establece sling.post.operationun valor al que responderá la operación. Todas las solicitudes de POST con un parámetro:operation establecido en ese valor se delegarán en esta clase de implementación.

El PostOperationinvoca el SocialOperationque realiza las acciones necesarias para la operación.

El PostOperationrecibe el resultado del SocialOperationy devuelve la respuesta adecuada al cliente.

Clase SocialOperation

Cada SocialOperationextremo amplía la clase AbstractSocialOperation y anula el método. performOperation().Este método realiza todas las acciones necesarias para completar la operación y devolver un error SocialOperationResulto, de lo contrario, emitir un OperationException, en cuyo caso se devuelve un estado de error HTTP con un mensaje, si está disponible, en lugar de la respuesta JSON normal o el código de estado HTTP de éxito.

La extensión AbstractSocialOperationpermite reutilizar SocialComponentspara enviar respuestas JSON.

Clase SocialOperationResult

La SocialOperationResultclase se devuelve como resultado del SocialOperationy se compone de un SocialComponent, código de estado HTTP y mensaje de estado HTTP.

El SocialComponentrepresenta el recurso afectado por la operación.

Para una operación de creación, el SocialComponentincluido en la SocialOperationResultrepresenta el recurso que se acaba de crear y, para una operación de actualización, representa el recurso modificado por la operación. No SocialComponentse devuelve ningún valor para una operación de eliminación.

Los códigos de estado HTTP de éxito utilizados son

  • 201 para operaciones de creación
  • 200 para operaciones de actualización
  • 204 para operaciones de eliminación

Clase OperationException

Se OperationExceptonpuede generar un error al realizar una operación si la solicitud no es válida o se produce algún otro error, como errores internos, valores de parámetro incorrectos, permisos incorrectos, etc. Un OperationExceptionse compone de un código de estado HTTP y un mensaje de error, que se devuelven al cliente como respuesta al PostOperatoin.

Clase OperationService

El marco de componentes sociales recomienda que la lógica empresarial responsable de realizar la operación no se implemente dentro de la SocialOperationclase, sino que se delegue en un servicio OSGi. El uso de un servicio OSGi para la lógica empresarial permite que un SocialComponentproducto, actuado por un SocialOperationpunto final, se integre con otro código y se aplique una lógica comercial diferente.

Todas OperationServicelas clases se extienden AbstractOperationService, permitiendo extensiones adicionales que pueden engancharse en la operación que se está realizando. Cada operación del servicio está representada por una SocialOperationclase. La OperationExtensionsclase se puede invocar durante la ejecución de la operación llamando a los métodos

  • performBeforeActions()
    Permite realizar comprobaciones previas/preprocesamiento y validaciones
  • performAfterActions()
    Permite una mayor modificación de los recursos o invocar eventos personalizados, flujos de trabajo, etc.

Clase OperationExtension

OperationExtensionson piezas de código personalizadas que se pueden insertar en una operación que permite personalizar las operaciones para satisfacer las necesidades comerciales. Los consumidores del componente pueden añadir funcionalidad de forma dinámica e incremental al componente. El patrón de extensión/gancho permite a los desarrolladores centrarse exclusivamente en las propias extensiones y elimina la necesidad de copiar y anular operaciones y componentes completos.

Código de muestra

El código de muestra está disponible en el repositorio Adobe Marketing Cloud GitHub . Busque proyectos con el prefijo aem-communities o aem-scf.

Prácticas recomendadas

Vista la sección Coding Guidelines (Directricesde codificación) para conocer las distintas directrices de codificación y prácticas recomendadas para desarrolladores de AEM Communities.

Consulte también Proveedor de recursos de Almacenamiento (SRP) para obtener información sobre cómo acceder al contenido generado por el usuario .

Elementos básicos de las funciones de ⇐ Personalización del cliente
Manillares de SCF Ayudantes

En esta página