Personalizzazione lato server

⇐ Funzioni Essenziali Personalizzazione lato client ⇒
Helper manubrio SCF

API Java

NOTA

La posizione del pacchetto delle API Community è soggetta a modifiche quando si esegue l'aggiornamento da una versione principale a quella successiva.

Interfaccia SocialComponent

I componenti social sono POJO che rappresentano una risorsa per una funzione AEM Communities . Idealmente, ogni SocialComponent rappresenta uno specifico resourceType con GETters esposti che forniscono i dati al client in modo che la risorsa sia correttamente rappresentata. Tutta la logica di business e di visualizzazione è racchiusa in SocialComponent, incluse le informazioni sulla sessione del visitatore del sito, se necessario.

L'interfaccia definisce un set base di GETters necessari per rappresentare una risorsa. È importante notare che l'interfaccia specifica i metodi Map<String, Object> getAsMap() e String toJSONString() necessari per eseguire il rendering dei modelli Handlebars ed esporre gli endpoint JSON GET per le risorse.

Tutte le classi SocialComponent devono implementare l'interfaccia com.adobe.cq.social.scf.SocialComponent

Interfaccia SocialCollectionComponent

L'interfaccia SocialCollectionComponent estende l'interfaccia SocialComponent per rappresentare meglio le risorse che sono raccolte di altre risorse.

Tutte le classi SocialCollectionComponent devono implementare l'interfaccia com.adobe.cq.social.scf.SocialCollectionComponent

Interfaccia SocialComponentFactory

Un SocialComponentFactory (factory) registra un SocialComponent con il framework. La fabbrica fornisce un mezzo per far sapere al framework quali SocialComponents sono disponibili per un dato resourceType e la loro priorità graduazione* quando vengono identificati più componenti social.

SocialComponentFactory è responsabile della creazione di un'istanza del SocialComponent selezionato che consente di inserire tutte le dipendenze necessarie dal SocialComponent dalla fabbrica utilizzando le procedure DI.

SocialComponentFactory è un servizio OSGi e ha accesso ad altri servizi OSGi che possono essere passati a SocialComponent tramite un costruttore.

Tutte le classi SocialComponentFactory devono implementare l'interfaccia com.adobe.cq.social.scf.SocialComponentFactory

L'implementazione del metodo SocialComponentFactory.getPriority() deve restituire il valore più alto affinché la fabbrica venga utilizzata per il resourceType specificato come restituito da getResourceType().

Interfaccia SocialComponentFactoryManager

SocialComponentFactoryManager (manager) gestisce tutti i SocialComponents registrati con il framework ed è responsabile della selezione di SocialComponentFactory da utilizzare per una determinata risorsa (resourceType). Se non sono registrate fabbriche per uno specifico resourceType, il manager restituirà una fabbrica con il super type più vicino per la risorsa specificata.

Un SocialComponentFactoryManager è un servizio OSGi e ha accesso ad altri servizi OSGi che possono essere passati a SocialComponent tramite un costruttore.

Un handle per il servizio OSGi viene ottenuto richiamando com.adobe.cq.social.scf.SocialComponentFactoryManager

API HTTP - Richieste POST

Classe PostOperation

Gli endpoint POST API HTTP sono classi PostOperation definite implementando l'interfaccia SlingPostOperationpacchetto org.apache.sling.servlets.post.

L'implementazione dell'endpoint PostOperationimposta sling.post.operationsu un valore a cui l'operazione risponderà. Tutte le richieste di POST con un parametro:operation impostato su tale valore verranno delegate a questa classe di implementazione.

Il PostOperationrichiama il SocialOperationche esegue le azioni necessarie per l'operazione.

Il PostOperationriceve il risultato dal SocialOperatione restituisce la risposta appropriata al client.

Classe SocialOperation

Ogni SocialOperationendpoint estende la classe AbstractSocialOperation e sostituisce il metodo performOperation().Questo metodo esegue tutte le azioni necessarie per completare l'operazione e restituire un SocialOperationResultoppure genera un OperationException, nel qual caso viene restituito uno stato di errore HTTP con un messaggio, se disponibile, al posto del normale codice di stato HTTP di risposta JSON o di riuscita.

L'estensione di AbstractSocialOperationconsente il riutilizzo di SocialComponentsper inviare risposte JSON.

Classe SocialOperationResult

La classe SocialOperationResultviene restituita come risultato della classe SocialOperationed è composta da un SocialComponent, da un codice di stato HTTP e da un messaggio di stato HTTP.

La SocialComponentrappresenta la risorsa interessata dall'operazione.

Per un'operazione di creazione, la SocialComponentinclusa nella SocialOperationResultrappresenta la risorsa appena creata e, per un'operazione di aggiornamento, rappresenta la risorsa modificata dall'operazione. Per un'operazione di eliminazione non viene restituito nessun SocialComponent.

I codici di stato HTTP utilizzati per il successo sono:

  • 201 per le operazioni di creazione
  • 200 per le operazioni di aggiornamento
  • 204 per le operazioni Elimina

Classe OperationException

Se la richiesta non è valida o si verifica un altro errore, ad esempio errori interni, valori errati dei parametri, autorizzazioni non corrette e così via, è possibile generare un OperationExceptondurante l'esecuzione di un'operazione. Un OperationExceptionè composto da un codice di stato HTTP e un messaggio di errore, che vengono restituiti al client come risposta al PostOperatoin.

Classe OperationService

Il framework dei componenti social consiglia di non implementare la logica aziendale responsabile dell'esecuzione dell'operazione all'interno della classe SocialOperationma di delegarla a un servizio OSGi. L'utilizzo di un servizio OSGi per la logica aziendale consente di integrare un SocialComponent, basato su un SocialOperationendpoint, con un altro codice e applicare una logica aziendale diversa.

Tutte le classi OperationServiceestendono AbstractOperationService, consentendo estensioni aggiuntive che possono collegarsi all'operazione in corso. Ogni operazione nel servizio è rappresentata da una SocialOperationclasse. La classe OperationExtensionspuò essere richiamata durante l'esecuzione dell'operazione chiamando i metodi

  • performBeforeActions()
    Consente pre-verifiche/pre-elaborazione e convalide
  • performAfterActions()
    Consente di modificare ulteriormente le risorse o richiamare eventi personalizzati, flussi di lavoro ecc.

Classe OperationExtension

OperationExtensionle classi sono pezzi di codice personalizzati che possono essere inseriti in un'operazione che consente la personalizzazione delle operazioni per soddisfare le esigenze aziendali. Gli utenti del componente possono aggiungere al componente in modo dinamico e incrementale funzionalità. Il pattern di estensione/gancio consente agli sviluppatori di concentrarsi esclusivamente sulle estensioni stesse e elimina la necessità di copiare e sovrascrivere intere operazioni e componenti.

Codice di esempio

Il codice di esempio è disponibile nell'archivio Adobe Marketing Cloud GitHub. Cercare progetti con il prefisso aem-communities o aem-scf.

Best practice

Per informazioni su diverse linee guida di codifica e best practice per sviluppatori AEM Communities, vedere la sezione Linee guida di codifica.

Vedere anche Storage Resource Provider (SRP) per UGC per informazioni sull'accesso ai contenuti generati dall'utente.

⇐ Funzioni Essenziali Personalizzazione lato client ⇒
Helper manubrio SCF

In questa pagina