SRP und UGC Essentials

Einführung

Wenn Sie mit dem Datenspeicherung Resource Provider (SRP) und seiner Beziehung zu benutzergenerierten Inhalten (UGC) nicht vertraut sind, besuchen Sie die Community Content Datenspeicherung und den Datenspeicherung Resource Provider-Überblick.

Dieser Abschnitt der Dokumentation enthält einige wichtige Informationen zu SRP und UGC.

StorageResourceProvider-API

Die SocialResourceProvider-API (SRP-API) ist eine Erweiterung verschiedener Sling Resource Provider-APIs. Es umfasst Unterstützung für Paginierung und atomare Inkrementierung (nützlich für Tally und Scoring).

Abfragen sind für SCF-Komponenten erforderlich, da eine Sortierung nach Datum, Hilfsbereitschaft, Anzahl der Stimmen usw. erforderlich ist. Alle SRP-Optionen verfügen über flexible Abfrage-Mechanismen, die sich nicht auf die Fehlersuche stützen.

Der Speicherort der SRP-Datenspeicherung enthält den Komponentenpfad. Die SRP-API sollte immer für den Zugriff auf UGC verwendet werden, da der Stammpfad von der ausgewählten SRP-Option wie ASRP, MSRP oder JSRP abhängt.

Die SRP-API ist keine abstrakte Klasse, sondern eine Schnittstelle. Eine benutzerdefinierte Implementierung sollte nicht auf die leichte Schulter genommen werden, da die Vorteile künftiger Verbesserungen an internen Implementierungen bei der Aktualisierung auf eine neue Version verpasst würden.

Die Mittel zur Verwendung der SRP-API werden über bereitgestellte Hilfsprogramme bereitgestellt, z. B. im Paket SocialResourceUtilities.

Bei der Aktualisierung von AEM 6.0 oder früher muss UGC für alle SRP migriert werden, für die ein Open-Source-Tool verfügbar ist. See Upgrading to AEM Communities 6.3.

Hinweis

Historisch gesehen wurden Hilfsprogramme für den Zugriff auf UGC im Paket SocialUtils gefunden, das nicht mehr existiert.

Ersatzdienstprogramme finden Sie unter SocialUtils Refactoring.

Dienstprogrammmethode für den Zugriff auf UGC

Um auf UGC zuzugreifen, verwenden Sie eine Methode aus dem SocialResourceUtilities-Paket, die einen Pfad zurückgibt, der für den Zugriff auf UGC über SRP geeignet ist, und die veraltete Methode ersetzt, die im SocialUtils-Paket gefunden wird.

Im Folgenden finden Sie ein minimales Beispiel für die Verwendung der Methode resourceToUGCStoragePath() in einem 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
}

Weitere SocialUtils-Ersetzungen finden Sie unter SocialUtils-Umgestaltung.

Richtlinien zum Kodieren finden Sie unter Zugriff auf UGC mit SRP.

ACHTUNG

Die Rückgabe des Pfads resourceToUGCStoragePath() ist nicht für die ACL-Prüfunggeeignet.

Dienstprogrammmethode für den Zugriff auf ACLs

Einige SRP-Implementierungen, wie z. B. ASRP und MSRP, speichern Community-Inhalte in Datenbanken, die keine ACL-Verifizierung bieten. Shadow-Knoten bieten einen Speicherort im lokalen Repository, auf den ACLs angewendet werden können.

Bei Verwendung der SRP-API werden alle SRP-Optionen vor allen CRUD-Vorgängen an der Position des Schattens überprüft.

Um ACLs zu überprüfen, verwenden Sie eine Methode, die einen Pfad zurückgibt, der geeignet ist, die Berechtigungen zu überprüfen, die auf das UGC der Ressource angewendet wurden.

Im Folgenden finden Sie ein einfaches Beispiel für die Verwendung der resourceToACLPath()-Methode in einem 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
}
ACHTUNG

Der von resourceToACLPath() zurückgegebene Pfad ist nicht für den Zugriff auf das UGC selbst geeignet.

Die folgenden Beschreibungen der Position der Datenspeicherung können bei der Entwicklung mit JSRP oder vielleicht MSRP hilfreich sein. Es gibt derzeit keine Benutzeroberfläche für den Zugriff auf UGC, die in ASRP gespeichert ist, wie es für JSRP (CRXDE Lite) und MSRP (MongoDB-Tools) gibt.

Komponentenposition

Wenn ein Mitglied in der Umgebung zum Veröffentlichen in das UGC wechselt, interagiert es mit einer Komponente als Teil einer AEM Site.

Ein Beispiel für eine solche Komponente ist die Kommentarkomponente , die auf der Website " Community-Komponenten-Handbuch "vorhanden ist. Der Pfad zum Kommentarknoten im lokalen Repository lautet:

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

Speicherort des Shadow-Knotens

Bei der Erstellung von UGC wird auch ein Shadow-Knoten erstellt, auf den die erforderlichen ACLs angewendet werden. Der Pfad zum entsprechenden Shadow-Knoten im lokalen Repository ist das Ergebnis, wenn der Shadow-Knoten-Stammpfad dem Komponentenpfad vorangestellt wird:

  • Stammverzeichnis = /content/usergenerated
  • Kommentarschatten-Knoten = /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments

UGC-Speicherort

Die UGC wird an keinem dieser Orte erstellt und sollte nur mit einer Dienstprogrammmethode aufgerufen werden, die die SRP-API aufruft.

  • Stammverzeichnis = /content/usergenerated/asi/srp-choice
  • UGC-Knoten für JSRP = /content/usergenerated/asi/jcr/content/community-components/en/comments/jcr:content/content/includable/comments/srzd-let_it_be_

Beachten Sie, dass der UGC-Knoten für JSRP nur auf der AEM Instanz (Autor oder Veröffentlichungsinstanz) vorhanden ist, auf der er eingegeben wurde. Bei der Eingabe in eine Veröffentlichungsinstanz ist eine Moderation in der Moderationskonsole beim Autor nicht möglich.

Auf dieser Seite