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 classificazione di priorità quando vengono identificati più SocialComponents.

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 SlingPostOperation (pacchetto org.apache.sling.servlets.post).

L'implementazione dell'endpoint PostOperation imposta sling.post.operation su 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.

L'elemento PostOperation richiama l'elemento SocialOperation che esegue le azioni necessarie per l'operazione.

Il PostOperation riceve il risultato dal SocialOperation e restituisce la risposta appropriata al client.

Classe SocialOperation

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

L'estensione di AbstractSocialOperation consente il riutilizzo di SocialComponents per inviare risposte JSON.

Classe SocialOperationResult

La classe SocialOperationResult viene restituita come risultato di SocialOperation ed è composta da un SocialComponent, da un codice di stato HTTP e da un messaggio di stato HTTP.

L'elemento SocialComponent rappresenta la risorsa interessata dall'operazione.

Per un'operazione di creazione, la SocialComponent inclusa nella SocialOperationResult rappresenta 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 di successo utilizzati sono:

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

Classe OperationException

Durante l'esecuzione di un'operazione è possibile generare un OperationExcepton 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. 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 di business responsabile dell'esecuzione dell'operazione all'interno della classe SocialOperation, ma di delegarla a un servizio OSGi. L'utilizzo di un servizio OSGi per la logica aziendale consente di integrare un SocialComponent, basato su un endpoint SocialOperation con un altro codice e applicare una logica aziendale diversa.

Tutte le classi OperationService estendono AbstractOperationService, consentendo estensioni aggiuntive che possono collegarsi all'operazione in corso. Ogni operazione nel servizio è rappresentata da una classe SocialOperation. La classe OperationExtensions può 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

OperationExtension le 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

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