現在表示中:

Java API

注意:

Communities API のパッケージの場所は、次のメジャーリリースにアップグレードされる際に変更されることがあります。

SocialComponent インターフェイス

SocialComponent は、AEM Communities 機能のリソースを表す POJO です。 理想的には、各 SocialComponent は、リソースが正確に表されるようにクライアントにデータを提供する公開された GETter を持つ特定の resourceType を表します。すべてのビジネスロジックおよび表示ロジックは、必要に応じて、サイト訪問者のセッション情報も含め、SocialComponent にカプセル化されます。

このインターフェイスは、リソースを表すために必要な GETter の基本セットを定義します。重要なことは、インターフェイスは、Handlebars テンプレートをレンダリングしリソースの GET JSON エンドポイントを公開するために必要な、Map<String, Object> getAsMap() および String toJSONString() メソッドを規定するということです。

すべての SocialComponent クラスは、インターフェイス com.adobe.cq.social.scf.SocialComponent を実装する必要があります。

SocialCollectionComponent インターフェイス

SocialCollectionComponent インターフェイスは、他のリソースのコレクションであるリソースをより適切に表すように SocialComponent インターフェイスを拡張します。 

すべての SocialCollectionComponent クラスは、インターフェイス com.adobe.cq.social.scf.SocialCollectionComponent を実装する必要があります。

SocialComponentFactory インターフェイス

SocialComponentFactory(ファクトリ)は、SocialComponent をフレームワークに登録します。ファクトリは、特定の resourceType に対してどの SocialComponent が使用可能か、および複数の SocialComponent が識別された場合の優先度ランク*をフレームワークが認識できるようにする手段を提供します。 

SocialComponentFactory は、選択された SocialComponent のインスタンスを作成し、SocialComponent に必要なすべての依存関係をファクトリから DI パッケージを使用して挿入できるようにします。

SocialComponentFactory は OSGi サービスであり、コンストラクター経由で SocialComponent に渡すことができる他の OSGi サービスにアクセスできます。

すべての SocialComponentFactory クラスは、インターフェイス com.adobe.cq.social.scf.SocialComponentFactory を実装する必要があります。

* SocialComponentFactory.getPriority() メソッドを実装すると、getResourceType() から返される特定の resourceType にファクトリが使用されるように最高値が返されます。

SocialComponentFactoryManager インターフェイス

SocialComponentFactoryManager(マネージャー)は、フレームワークに登録されたすべての SocialComponent を管理し、特定のリソース(resourceType)に対して使用される SocialComponentFactory を選択します。特定の resourceType についてファクトリが登録されていない場合、マネージャーは特定のリソースの最も近いスーパータイプを使用してファクトリを返します。

SocialComponentFactoryManager は OSGi サービスであり、コンストラクター経由で SocialComponent に渡すことができる他の OSGi サービスにアクセスできます。

OSGi サービスへのハンドルは、com.adobe.cq.social.scf.SocialComponentFactoryManager を呼び出すことによって取得されます。

HTTP API - POST 要求

PostOperation クラス

HTTP API POST エンドポイントは、SlingPostOperation インターフェイス(パッケージ org.apache.sling.servlets.post)を実装することによって定義される PostOperation クラスです。

PostOperation エンドポイント実装は、sling.post.operation を操作の応答先の値に設定します。その値に設定された :operation パラメーターを持つすべての POST 要求は、この実装クラスに委任されます。

PostOperation は、操作に必要なアクションを実行する SocialOperation を呼び出します。

PostOperation は、結果を SocialOperation から受け取り、適切な応答をクライアントに返します。

SocialOperation クラス

SocialOperation エンドポイントは、AbstractSocialOperation クラスを拡張し、メソッド performOperation() を上書きします。このメソッドは、操作の完了に必要なすべてのアクションを実行し、SocialOperationResult を返すか、または OperationException をスローします。後者の場合は、HTTP エラーステータスとメッセージ(使用可能な場合)が、通常の JSON 応答または成功 HTTP ステータスコードの代わりに返されます。

AbstractSocialOperation を拡張すると、JSON 応答を送信するための SocialComponent の再利用が可能になります。

SocialOperationResult クラス

SocialOperationResult クラスは、SocialOperation の結果として返され、SocialComponent、HTTP ステータスコードおよび HTTP ステータスメッセージで構成されます。

SocialComponent は、操作の影響を受けたリソースを表します。

作成操作の場合、SocialOperationResult に含まれる SocialComponent は作成されたリソースを表し、更新操作の場合、操作によって変更されたリソースを表します。削除操作の場合は SocialComponent は返されません。

使用される成功 HTTP ステータスコードは、以下のとおりです。

  • 作成操作の場合は 201
  • 更新操作の場合は 200
  • 削除操作の場合は 204

OperationException クラス

OperationExcepton は、操作の実行時に、要求が無効であるかその他のエラーが発生した場合に(内部エラー、不正なパラメーター値、不適切な権限など)スローされることがあります。OperationException は、HTTP ステータスコードおよびエラーメッセージで構成され、これらは PostOperatoin に対する応答としてクライアントに返されます。

OperationService クラス

ソーシャルコンポーネントフレームワークでは、操作を実行するビジネスロジックを SocialOperation クラス内に実装せず、代わりに OSGi サービスに委任することが推奨されます。ビジネスロジックの OSGi サービスを使用すると、SocialComponentSocialOperation エンドポイントの影響を受ける)を他のコードと統合でき、異なるビジネスロジックを適用できます。

すべての OperationService クラスは AbstractOperationService を拡張し、実行される操作に関連付けることができる追加拡張を可能にします。サービス内の各操作は SocialOperation クラスによって表されます。OperationExtensions クラスは、操作の実行中に以下のメソッドを呼び出すことによって呼び出すことができます。

  • performBeforeActions()
    は、事前チェック/事前処理および検証を可能にします。
  • performAfterActions()
    は、リソースの追加変更またはカスタムイベント、ワークフローなどの呼び出しを可能にします。

OperationExtension クラス

OperationExtension クラスは、操作に挿入できるコードのカスタム部分であり、ビジネスニーズに合うように操作をカスタマイズできます。コンポーネントのユーザーは、動的および増分的にコンポーネントに機能を追加できます。拡張/フックパターンにより、開発者は拡張自体に集中でき、操作およびコンポーネント全体をコピーして上書きする必要はなくなります。

サンプルコード

サンプルコードを Adobe Marketing Cloud GitHub リポジトリで入手できます。先頭に aem-communities または aem-scf が付いたプロジェクトを検索します。

ベストプラクティス

AEM Communities 開発者向けの様々なコーディングガイドラインおよびベストプラクティスについては、コーディングのガイドラインの節を参照してください。

ユーザー生成コンテンツへのアクセスについては、UGC のストレージリソースプロバイダー(SRP)も参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー