Personalizzazione lato server server-side-customization

CAUTION
AEM 6.4 ha raggiunto la fine del supporto esteso e questa documentazione non viene più aggiornata. Per maggiori dettagli, consulta la nostra periodi di assistenza tecnica. Trova le versioni supportate qui.

API Java java-apis

NOTE
La posizione del pacchetto delle API di Communities è soggetta a modifiche durante l’aggiornamento da una versione principale a quella successiva.

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 convalide
  • performAfterActions()
    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.

recommendation-more-help
5d37d7b0-a330-461b-814d-068612705ff6