Personalizzazione lato server server-side-customization
API Java java-apis
Interfaccia SocialComponent socialcomponent-interface
I componenti social sono POJO che rappresentano una risorsa per una funzione di AEM Communities. Idealmente, ogni SocialComponent rappresenta un resourceType specifico 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 nel componente Social, incluse le informazioni sulla sessione del visitatore del sito, se necessario.
L’interfaccia definisce un set di base di GETters necessario per rappresentare una risorsa. Importante: l'interfaccia specifica la mappa<string object=""> metodi getAsMap() e String toJSONString() necessari per eseguire il rendering dei modelli Handlebar ed esporre gli endpoint GET JSON per le risorse.
Tutte le classi SocialComponent devono implementare l'interfaccia com.adobe.cq.social.scf.SocialComponent
Interfaccia socialCollectionComponent socialcollectioncomponent-interface
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.sosocial.scf.SocialCollectionComponent
Interfaccia SocialComponentFactory socialcomponentfactory-interface
Una SocialComponentFactory (fabbrica) registra un SocialComponent con il framework. La fabbrica fornisce un mezzo per far sapere al framework quali componenti social sono disponibili per un determinato resourceType e la loro classificazione prioritaria* quando sono 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 pratiche di ID.
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 sia utilizzata per la risorsaType specificata come restituita da getResourceType().
Interfaccia SocialComponentFactoryManager socialcomponentfactorymanager-interface
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 vengono registrate fabbriche per un resourceType specifico, il manager restituirà una fabbrica con il super tipo 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 del servizio OSGi si ottiene richiamando com.adobe.cq.social.scf.SocialComponentFactoryManager
API HTTP - Richieste POST http-api-post-requests
Classe PostOperation postoperation-class
Gli endpoint HTTP API POST sono classi PostOperation definite implementando SlingPostOperationinterfaccia (pacchetto) org.apache.sling.servlets.post).
La PostOperationset di implementazione di endpoint sling.post.operationa un valore a cui l'operazione risponderà. A questa classe di implementazione verranno delegate tutte le richieste POST con un parametro:operation impostato su tale valore.
La PostOperationrichiama SocialOperationche esegue le azioni necessarie per l'operazione.
La PostOperationriceve il risultato dalla SocialOperatione restituisce la risposta appropriata al client.
Classe SocialOperation socialoperation-class
Ogni SocialOperationl'endpoint 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 risposta JSON o di stato HTTP riuscito.
Estensione AbstractSocialOperationconsente il riutilizzo di SocialComponentsper inviare risposte JSON.
Classe SocialOperationResult socialoperationresult-class
La SocialOperationResultviene restituita come risultato della SocialOperationed è composto da un SocialComponent, codice di stato HTTP e messaggio di stato HTTP.
La SocialComponentrappresenta la risorsa interessata dall'operazione.
Per un’operazione Crea , la variabile SocialComponentincluso nel SocialOperationResultrappresenta la risorsa appena creata e, per un’operazione Update, rappresenta la risorsa modificata dall’operazione. No SocialComponentviene restituito per un'operazione Delete.
I codici di stato HTTP utilizzati sono
- 201 per le operazioni di creazione
- 200 per le operazioni di aggiornamento
- 204 per le operazioni di eliminazione
Classe OperationException operationexception-class
Un OperationExceptonpossono essere lanciati quando si esegue un'operazione se la richiesta non è valida o si verifica un altro errore, ad esempio errori interni, valori di parametro non validi, 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 operationservice-class
Il quadro della componente sociale raccomanda che la logica di business responsabile dell'esecuzione dell'operazione non sia implementata all'interno SocialOperation, ma è stato delegato a un servizio OSGi. L'utilizzo di un servizio OSGi per la logica di business consente a SocialComponent, agiti da un SocialOperationendpoint , da integrare con altro codice e con logica di business diversa applicata.
Tutto OperationServiceestensione delle classi AbstractOperationService, che consente estensioni aggiuntive che possono collegarsi all’operazione in esecuzione. Ogni operazione nel servizio è rappresentata da un SocialOperationclasse. La OperationExtensionsè possibile richiamare la classe durante l'esecuzione dell'operazione chiamando i metodi
performBeforeActions()
Consente pre-verifiche/pre-elaborazione e convalideperformAfterActions()
Consente un'ulteriore modifica delle risorse o richiama eventi personalizzati, flussi di lavoro, ecc.
Classe OperationExtension operationextension-class
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 funzionalità in modo dinamico e incrementale al componente. Il modello di estensione/hook consente agli sviluppatori di concentrarsi esclusivamente sulle estensioni stesse e rimuove la necessità di copiare e sovrascrivere intere operazioni e componenti.
Codice di esempio sample-code
Il codice di esempio è disponibile nella variabile Adobe Marketing Cloud GitHub archivio. Cerca progetti con prefisso aem-communities o aem-scf.
Best practice best-practices
Visualizza la Linee guida sulla codifica sezione per diverse linee guida per la codifica e best practice per gli sviluppatori AEM Communities.
Vedi anche Provider di risorse di storage (SRP) per UGC per informazioni sull’accesso ai contenuti generati dagli utenti.