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* 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 interfaz SlingPostOperation(paquete org.apache.sling.servlets.post).

La implementación de PostOperationextremo establece sling.post.operationen un 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 de SocialOperationy devuelve la respuesta adecuada al cliente.

Clase SocialOperation

Cada extremo SocialOperationextiende 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 SocialOperationResulto bien, envía 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 clase SocialOperationResultse devuelve como resultado de SocialOperationy está compuesta por 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 el 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 se devuelve SocialComponentpara 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 puede generar un OperationExceptonal 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 OperationExceptionestá compuesto por 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 clase SocialOperationsino que se delegue a un servicio OSGi. El uso de un servicio OSGi para la lógica de negocios permite que un SocialComponent, actuado por un SocialOperationextremo, se integre con otro código y se aplique una lógica de negocios diferente.

Todas las clases OperationServicese extienden AbstractOperationService, permitiendo extensiones adicionales que pueden enganchar en la operación que se está realizando. Cada operación del servicio está representada por una clase SocialOperation. La clase OperationExtensionsse 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 Pautas de codificación para conocer las distintas pautas de codificación y prácticas recomendadas para desarrolladores de AEM Communities.

Consulte también Proveedor de recursos de Almacenamiento (SRP) para UGC para obtener más información sobre el acceso 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