伺服器端自訂

‹功能基本工具 用戶端自訂的‹
SCF Handlepers ‡

Java API

注意

當從一個主要版本升級至下一個版本時,Communities API的封裝位置可能會有所變更。

SocialComponent介面

SocialComponents是POJO,代表AEM Communities功能的資源。 理想情況下,每個SocialComponent都代表特定的resourceType,並有公開的GETters,可提供資料給用戶端,以精確呈現資源。 所有商業邏輯和檢視邏輯都封裝在Social元件中,包括網站訪客的作業資訊(如有需要)。

該介面定義了表示資源所需的基本GETter集。 重要的是,介面規定了Map<String, Object> getAsMap()和String toJSONString()方法,這些方法是轉譯Handlebars範本和公開GET JSON端點資源的必要方式。

所有SocialComponent類別都必須實作介面com.adobe.cq.social.scf.SocialComponent

SocialCollectionComponent介面

SocialCollectionComponent介面可擴充SocialComponent介面,以更好地呈現其他資源的集合。

所有SocialCollectionComponent類別都必須實作介面com.adobe.cq.sosical.scf.SocialCollectionComponent

SocialComponentFactory介面

SocialComponentFactory(factory)會將SocialComponent註冊為架構。 該工廠提供一種方法,讓框架知道什麼SocialComponents可用於給定的resourceType及其優先順序ranking&ast;識別多個Social元件時。

SocialComponentFactory負責建立所選SocialComponent的例項,以便能夠使用DI實務從工廠中注入SocialComponent所需的所有相依性。

SocialComponentFactory是OSGi服務,可存取其他OSGi服務,這些服務可透過建構函式傳遞至SocialComponent。

所有SocialComponentFactory類都必須實作介面com.adobe.cq.social.scf.SocialComponentFactory

SocialComponentFactory.getPriority()方法的實作應傳回最高值,以便工廠用於getResourceType()傳回的指定resourceType。

SocialComponentFactoryManager介面

SocialComponentFactoryManager(管理員)會管理在架構中註冊的所有SocialComponents,並負責選擇SocialComponentFactory以用於指定的資源(resourceType)。 如果沒有為特定資源類型註冊工廠,則經理將返回具有給定資源最接近超類型的工廠。

SocialComponentFactoryManager是OSGi服務,可存取其他OSGi服務,這些服務可透過建構函式傳遞至SocialComponent。

通過調用com.adobe.cq.social.scf.SocialComponentFactoryManager獲得OSGi服務的句柄

HTTP API - POST請求

後操作類

HTTP API POST端點是通過實施SlingPostOperation介面(包org.apache.sling.servlets.post)定義的PostOperation類。

PostOperation端點實施將sling.post.operation設定為操作將響應的值。 設為該值的:operation參數的所有POST請求都將委託給此實施類。

PostOperation調用SocialOperation,該執行操作所需的操作。

PostOperationSocialOperation接收結果,並將相應的響應返回給客戶端。

SocialOperation類

每個SocialOperation端點都擴展了AbstractSocialOperation類並覆蓋方法performOperation().。此方法執行完成操作所需的所有操作並返回SocialOperationResult或擲出OperationException,在此情況下,將返回帶消息的HTTP錯誤狀態(如果可用),以代替正常的JSON響應或成功的HTTP狀態代碼。

延伸AbstractSocialOperation可重複使用SocialComponents來傳送JSON回應。

SocialOperationResult類

SocialOperationResult類作為SocialOperation的結果返回,由SocialComponent、HTTP狀態代碼和HTTP狀態消息組成。

SocialComponent表示受操作影響的資源。

對於建立操作,SocialOperationResult中包含的SocialComponent表示剛建立的資源,對於更新操作,它表示由操作更改的資源。 刪除操作不會返回SocialComponent

使用的成功HTTP狀態代碼為

  • 2010年建立操作
  • 200 for Update operations
  • 204 for Delete operations

OperationException類

如果請求無效或發生其他錯誤,例如內部錯誤、參數值錯誤、權限不當等,在執行操作時可拋出OperationExceptonOperationException由HTTP狀態代碼和錯誤消息組成,這些消息作為對PostOperatoin的響應返回給客戶端。

OperationService Class

社交元件架構建議負責執行操作的商業邏輯不在SocialOperation類別中實作,而是委託給OSGi服務。 使用用於業務邏輯的OSGi服務允許由SocialOperation端點所作的SocialComponent與其它代碼整合併應用不同的業務邏輯。

所有OperationService類都擴展AbstractOperationService ,允許附加擴展,這些擴展可連接到正在執行的操作中。 服務中的每個操作都由SocialOperation類表示。 通過調用方法,可在操作執行期間調用OperationExtensions

  • performBeforeActions()
    允許預檢/預處理和驗證
  • performAfterActions()
    允許進一步修改資源或調用自定義事件、工作流等

OperationExtension類

OperationExtension類是可插入操作的自定義代碼片段,允許定制操作以滿足業務需要。元件的使用者可動態且遞增地新增功能至元件。 擴充/掛接模式可讓開發人員專注於擴充功能本身,而不需複製和覆寫整個作業和元件。

范常式式碼

范常式式碼可在Adobe Marketing Cloud GitHub儲存庫中使用。 搜尋前置詞為aem-communitiesaem-scf的專案。

最佳作法

檢視編碼准則一節,以取得AEM Communities開發人員的各種編碼准則和最佳實務。

如需有關訪問用戶生成內容的資訊,請參閱UGC的儲存資源提供程式(SRP)。

‹功能基本工具 用戶端自訂的‹
SCF Handlepers ‡

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now