Elementos esenciales de SRP y UGC

Introducción

Si no está familiarizado con el proveedor de recursos de almacenamiento (SRP) y su relación con el contenido generado por el usuario (UGC), visite Community Content Almacenamiento y Almacenamiento Resource Provider Overview.

En esta sección de la documentación se proporciona información esencial sobre SRP y UGC.

API de StorageResourceProvider

La API de SocialResourceProvider (SRP API) es una extensión de varias API de proveedores de recursos de Sling. Incluye soporte para paginación e incremento atómico (útil para contar y anotar).

Se necesitan consultas para los componentes del SCF, ya que es necesario ordenar por fecha, utilidad, número de votos, etc. Todas las opciones de SRP cuentan con mecanismos de consulta flexibles que no dependen de la inversión.

La ubicación del almacenamiento SRP incorpora la ruta del componente. La API de SRP siempre debe utilizarse para acceder a UGC, ya que la ruta de acceso raíz depende de la opción de SRP seleccionada, como ASRP, MSRP o JSRP.

La API de SRP no es una clase abstracta, es una interfaz. Una implementación personalizada no debería realizarse a la ligera, ya que las ventajas de futuras mejoras en las implementaciones internas se perderían al actualizar a una nueva versión.

Los medios para utilizar la API de SRP son a través de las utilidades proporcionadas, como las que se encuentran en el paquete SocialResourceUtilities.

Al actualizar desde AEM 6.0 o anterior, será necesario migrar UGC para todos los SRP, para los que hay una herramienta de código abierto disponible. See Upgrading to AEM Communities 6.3.

Nota

Históricamente, las utilidades para acceder a UGC se encontraban en el paquete SocialUtils, que ya no existe.

Para ver las utilidades de reemplazo, consulte Refactorización de SocialUtils.

Método de utilidad para acceder a UGC

Para acceder a UGC, utilice un método del paquete SocialResourceUtilities que devuelve una ruta adecuada para acceder a UGC desde SRP y reemplace el método obsoleto que se encuentra en el paquete SocialUtils.

A continuación se muestra un ejemplo mínimo de uso del método resourceToUGCStoragePath() en un servlet:

import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String ugcPath = socialResourceUtilities.resourceToUGCStoragePath(request.getResource());
  // rest of servlet
}

Para otras sustituciones de SocialUtils, consulte Refactorización de SocialUtils.

Para obtener instrucciones de codificación, visite Acceso a UGC con SRP.

PRECAUCIÓN

El path resourceToUGCStoragePath() devuelve no es adecuado para la comprobación ACL.

Método de utilidad para acceder a las ACL

Algunas implementaciones de SRP, como ASRP y MSRP, almacenan contenido comunitario en bases de datos que no proporcionan verificación de ACL. Los nodos de sombra proporcionan una ubicación en el repositorio local a la que se pueden aplicar las ACL.

Mediante la API de SRP, todas las opciones de SRP realizan la misma comprobación de la ubicación de sombra antes de todas las operaciones de CRUD.

Para comprobar las ACL, utilice un método que devuelva una ruta adecuada para comprobar los permisos aplicados al UGC del recurso.

A continuación se muestra un ejemplo sencillo de uso del método resourceToACLPath() en un servlet:

import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;

@Reference
private SocialResourceUtilities socialResourceUtilities;

@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
  String aclPath = socialResourceUtilities.resourceToACLPath(request.getResource());
  // rest of servlet
}
PRECAUCIÓN

La ruta devuelta por resourceToACLPath() no es adecuada para acceder al propio UGC .

Las siguientes descripciones de la ubicación de los almacenamientos pueden ser de utilidad para el desarrollo del JSRP o tal vez del MSRP. Actualmente no hay ninguna interfaz de usuario para acceder a UGC almacenada en ASRP, ya que existe para JSRP (CRXDE Lite) y MSRP (herramientas de MongoDB).

Ubicación del componente

Cuando un miembro introduce UGC en el entorno de publicación, interactúa con un componente como parte de un sitio AEM.

Un ejemplo de este componente es el componente de comentarios que existe en el sitio de la Guía de componentes de la comunidad. La ruta al nodo de comentarios en el repositorio local es:

  • Component path = /content/community-components/en/comments/jcr:content/content/includable/comments

Ubicación del nodo de sombra

La creación de UGC también crea un nodo de sombra al que se aplican las ACL necesarias. La ruta al nodo de sombra correspondiente en el repositorio local es el resultado de anteponer la ruta raíz del nodo de sombra a la ruta del componente:

  • Ruta raíz = /content/usergenerated
  • Nodo de sombra de comentario = /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments

Ubicación de UGC

El UGC se crea en ninguna de estas ubicaciones y solo se debe acceder a él mediante un método de utilidad que invoque la API de SRP.

  • Ruta raíz = /content/usergenerated/asi/srp-choice
  • Nodo UGC para JSRP = /content/usergenerated/asi/jcr/content/community-components/en/comments/jcr:content/content/includable/comments/srzd-let_it_be_

Tenga en cuenta que para JSRP, el nodo UGC sólo estará presente en la instancia de AEM (autor o publicación) en la que se introdujo. Si se introduce en una instancia de publicación, la moderación no será posible desde la consola de moderación del autor.

En esta página