SRP と UGC の基本事項 srp-and-ugc-essentials

はじめに introduction

ストレージリソースプロバイダー(SRP)と、ユーザー生成コンテンツ(UGC)との関係についてご存じない場合は、​ コミュニティコンテンツストレージ ​および​ ストレージリソースプロバイダーの概要にアクセスしてください。

このセクションでは、SRPとUGCに関する重要な情報を提供します。

StorageResourceProvider API storageresourceprovider-api

SocialResourceProvider API (SRP API)は、様々なSling リソースプロバイダーAPIの拡張機能です。 ページネーションとアトミックインクリメントのサポートが含まれています(集計とスコアリングに役立ちます)。

SCF コンポーネントには、日付、有用性、投票数などで並べ替える必要があるため、クエリが必要です。 すべてのSRP オプションには、バケットに依存しない柔軟なクエリメカニズムがあります。

SRP ストレージの場所には、コンポーネントパスが組み込まれています。 ルートパスは、ASRP、MSRP、JSRPなど、選択したSRP オプションに依存するため、SRP APIを常に使用してUGCにアクセスする必要があります。

SRP APIは抽象クラスではなく、インターフェイスです。 カスタム実装は、新しいリリースにアップグレードする際に内部実装を改善するメリットを逃すため、軽く実行すべきではありません。

SRP APIを使用する手段は、SocialResourceUtilities パッケージに含まれている提供されたユーティリティを使用します。

AEM 6.0以前からアップグレードする場合は、Open Source ツールを使用できるすべてのSRPにUGCを移行する必要があります。 AEM Communities 6.3へのアップグレードを参照してください。

NOTE
従来、UGCにアクセスするためのユーティリティは、SocialUtils パッケージに含まれていましたが、このパッケージは既に存在しません。
代替ユーティリティについては、SocialUtils リファクタリング ​を参照してください。

UGCへのアクセス方法 utility-method-to-access-ugc

UGCにアクセスするには、SocialResourceUtilities パッケージのメソッドを使用します。このメソッドは、SRPからUGCにアクセスするのに適したパスを返し、SocialUtils パッケージにある非推奨のメソッドを置き換えます。

次に、サーブレットでresourceToUGCStoragePath () メソッドを使用する簡単な例を示します。

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
}

その他のSocialUtilsの置換については、SocialUtils リファクタリング ​を参照してください。

コーディングガイドラインについては、SRPを使用したUGCへのアクセス ​を参照してください。

CAUTION
resourceToUGCStoragePath ()が返すパスは​ not ​です。ACLの確認に適しています。

ACLにアクセスするためのユーティリティメソッド utility-method-to-access-acls

ASRPやMSRPなどの一部のSRP実装では、ACL検証を提供しないデータベースにコミュニティ コンテンツを保存します。 シャドウノードは、ACLを適用できるローカルリポジトリ内の場所を提供します。

SRP APIを使用すると、すべてのSRP オプションは、すべてのCRUD操作の前にシャドウの場所を同じようにチェックします。

ACLをチェックするには、リソースのUGCに適用される権限のチェックに適したパスを返すメソッドを使用します。

次に、サーブレットでresourceToACLPath () メソッドを使用する簡単な例を示します。

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
}
CAUTION
resourceToACLPath ()によって返されるパスは、not​です。これは、UGC自体へのアクセスに適しています。

ストレージの場所に関する以下の説明は、JSRPまたは場合によってはMSRPを使用して開発する際に役立つ可能性があります。 JSRP (CRXDE Lite)およびMSRP (MongoDB ツール)に対して、ASRPに格納されているUGCにアクセスするためのUIは現在存在しません。

コンポーネントの場所

メンバーがパブリッシュ環境でUGCを開始すると、AEM サイトの一部としてコンポーネントと対話します。

このようなコンポーネントの例として、​ コミュニティコンポーネントガイド ​ サイトに存在する​ コメント コンポーネント ​があります。 ローカルリポジトリ内のコメントノードへのパスは次のとおりです。

  • コンポーネント パス = /content/community-components/en/comments/jcr:content/content/includable/comments

シャドウ ノードの場所

UGCを作成すると、必要なACLが適用される​ シャドウ ノード ​も作成されます。 ローカルリポジトリ内の対応するシャドウノードへのパスは、コンポーネントパスにシャドウノードルートパスを追加した結果です。

  • ルート パス = /content/usergenerated
  • コメント シャドウ ノード = /content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments

UGCの場所

UGCは、どちらの場所にも作成されず、SRP APIを呼び出す​ ユーティリティメソッド ​を使用してのみアクセスする必要があります。

  • ルート パス = /content/usergenerated/asi/srp-choice
  • JSRPのUGC ノード = /content/usergenerated/asi/jcr/content/community-components/en/comments/jcr:content/content/includable/comments/srzd-let_it_be_

注意​してください。JSRPの場合、UGC ノードは​ のみ ​が入力されたAEM インスタンス(オーサーまたはパブリッシュのいずれか)に存在します。 パブリッシュインスタンスに入力した場合、オーサーのモデレーションコンソールからモデレーションを実行できません。

recommendation-more-help
experience-manager-65-help-communities