Aanpassing op de server server-side-customization

CAUTION
AEM 6.4 heeft het einde van de uitgebreide ondersteuning bereikt en deze documentatie wordt niet meer bijgewerkt. Raadpleeg voor meer informatie onze technische ondersteuningsperioden. Ondersteunde versies zoeken hier.

Java API's java-apis

NOTE
De pakketlocatie van de communautaire API's kan veranderen wanneer u een upgrade uitvoert van de ene grote release naar de volgende.

Interface van SocialComponent socialcomponent-interface

Sociale componenten zijn POJO's die een bron voor een AEM Communities-functie vertegenwoordigen. Idealiter vertegenwoordigt elke SocialComponent een specifiek resourceType met blootgestelde GETters die gegevens aan de cliënt verstrekken zodat wordt het middel nauwkeurig vertegenwoordigd. Alle bedrijfslogica en meningslogica wordt ingekapseld in SocialComponent, met inbegrip van de zittingsinformatie van de plaatsbezoeker, indien nodig.

De interface bepaalt een basisreeks GETters die noodzakelijk zijn om een middel te vertegenwoordigen. Belangrijk, bepaalt de interface Kaart<string object=""> getAsMap() en String toJSONString() methoden die nodig zijn om Handlebars-sjablonen te renderen en GET JSON-eindpunten voor bronnen beschikbaar te maken.

Alle klassen SocialComponent moeten de interface uitvoeren com.adobe.cq.social.scf.SocialComponent

Interface SocialCollectionComponent socialcollectioncomponent-interface

De interface SocialCollectionComponent breidt de interface SocialComponent uit om middelen beter te vertegenwoordigen die inzamelingen van andere middelen zijn.

Alle klassen SocialCollectionComponent moeten de interface com.adobe.cq.social.scf.SocialCollectionComponent uitvoeren

SocialComponentFactory-interface socialcomponentfactory-interface

Een SocialComponentFactory (factory) registreert een SocialComponent met het framework. De fabriek biedt een manier om het kader te laten weten welke Sociale Componenten beschikbaar zijn voor een bepaald resourceType en hun prioritaire rangschikking* wanneer er meerdere sociale componenten zijn geïdentificeerd.

Een SocialComponentFactory is verantwoordelijk voor het creëren van een geval van geselecteerde SocialComponent die het mogelijk maakt om alle gebiedsdelen te injecteren nodig door SocialComponent van de fabriek gebruikend DI praktijken.

Een SocialComponentFactory is de dienst OSGi en heeft toegang tot andere diensten OSGi die tot SocialComponent door een aannemer kunnen worden overgegaan.

Alle klassen SocialComponentFactory moeten de interface implementeren com.adobe.cq.social.scf.SocialComponentFactory

Een implementatie van de methode SocialComponentFactory.getPriority() moet de hoogste waarde retourneren voordat de factory voor het opgegeven resourceType wordt gebruikt, zoals geretourneerd door getResourceType().

SocialComponentFactoryManager-interface socialcomponentfactorymanager-interface

De SocialComponentFactoryManager (manager) beheert alle sociale componenten die bij het framework zijn geregistreerd en is verantwoordelijk voor het selecteren van de SocialComponentFactory die voor een bepaalde resource (resourceType) moet worden gebruikt. Als geen fabrieken voor een specifieke resourceType worden geregistreerd, zal de manager een fabriek met het meest dichtbijgelegen super type voor de bepaalde middel terugkeren.

Een SocialComponentFactoryManager is de dienst OSGi en heeft toegang tot andere diensten OSGi die tot SocialComponent door een aannemer kunnen worden overgegaan.

Een handgreep van de OSGi-dienst wordt verkregen door een beroep te doen op com.adobe.cq.social.scf.SocialComponentFactoryManager

HTTP API - POST-aanvragen http-api-post-requests

PostOperation-klasse postoperation-class

De eindpunten van de HTTP API-POST zijn PostOperation-klassen die worden gedefinieerd door de implementatie van de SlingPostOperationinterface (pakket org.apache.sling.servlets.post).

De PostOperationeindpuntimplementatiesets sling.post.operationop een waarde waarop de bewerking zal reageren. Alle verzoeken van de POST met een:parameter van de verrichting die aan die waarde wordt geplaatst zullen aan deze implementatieklasse worden gedelegeerd.

De PostOperationroept de SocialOperationdie de voor de bewerking vereiste handelingen uitvoert.

De PostOperationontvangt het resultaat van de SocialOperationen retourneert de juiste reactie op de client.

Klasse SocialOperation socialoperation-class

Elk SocialOperationHet eindpunt breidt de klasse AbstractSocialOperation uit en treedt de methode met voeten performOperation().Deze methode voert alle handelingen uit die nodig zijn om de bewerking te voltooien en een SocialOperationResultof anders een OperationException, in welk geval een HTTP-foutstatus met een bericht wordt geretourneerd, indien beschikbaar, in plaats van de normale JSON-respons of HTTP-successtatuscode.

Uitbreiden AbstractSocialOperationde mogelijkheid biedt om SocialComponentsom JSON-reacties te verzenden.

SocialOperationResult, klasse socialoperationresult-class

De SocialOperationResultwordt geretourneerd als het resultaat van de SocialOperationen bestaat uit een SocialComponent, HTTP-statuscode en HTTP-statusbericht.

De SocialComponentvertegenwoordigt de bron die door de bewerking is beïnvloed.

Voor een bewerking Maken SocialComponentopgenomen in de SocialOperationResultvertegenwoordigt het middel enkel gecreeerd en voor een verrichting van de Update, vertegenwoordigt het het middel dat door de verrichting werd veranderd. Nee SocialComponentwordt geretourneerd voor een verwijderbewerking.

De gebruikte HTTP-statuscodes voor succesmeldingen zijn:

  • 201 voor bewerkingen maken
  • 200 voor updatebewerkingen
  • 204 voor verwijderingsbewerkingen

OperationException, klasse operationexception-class

An OperationExceptonkan worden gegenereerd wanneer een bewerking wordt uitgevoerd als de aanvraag ongeldig is of als er zich een andere fout voordoet, zoals interne fouten, onjuiste parameterwaarden, onjuiste machtigingen, enz. An OperationExceptionbestaat uit een HTTP-statuscode en een foutbericht die aan de client worden geretourneerd als reactie op de PostOperatoin.

OperationService-klasse operationservice-class

In het kader van de sociale component wordt aanbevolen dat de bedrijfslogica die verantwoordelijk is voor de uitvoering van de bewerking, niet wordt geïmplementeerd binnen de SocialOperationklasse, maar in plaats daarvan gedelegeerd aan de dienst OSGi. Het gebruiken van de dienst OSGi voor bedrijfslogica staat een toe SocialComponent, die door een SocialOperationeindpunt, dat met andere code moet worden geïntegreerd en verschillende toegepaste bedrijfslogica hebben.

Alles OperationServiceklassen uitbreiden AbstractOperationService, waardoor extra extensies kunnen worden toegestaan die kunnen worden gekoppeld aan de uitgevoerde bewerking. Elke verrichting in de dienst wordt vertegenwoordigd door SocialOperationklasse. De OperationExtensionsklasse kan tijdens verrichtingsuitvoering worden aangehaald door de methodes te roepen

  • performBeforeActions()
    Voorcontroles/voorbewerking en validaties zijn toegestaan
  • performAfterActions()
    Staat voor verdere wijziging van middelen toe of het aanhalen van douanegebeurtenissen, werkschema's, enz.

OperationExtension-klasse operationextension-class

OperationExtensionde klassen zijn douanestukken van code die in een verrichting kunnen worden ingespoten die voor aanpassing van verrichtingen toestaat om aan bedrijfsbehoeften te voldoen. De consumenten van de component kunnen dynamisch en oplopend functionaliteit toevoegen aan de component. Met het extensie-/haakpatroon kunnen ontwikkelaars zich uitsluitend richten op de extensies zelf. Bovendien is het overbodig om volledige bewerkingen en componenten te kopiëren en te overschrijven.

Voorbeeldcode sample-code

Voorbeeldcode is beschikbaar in het dialoogvenster Adobe Marketing Cloud GitHub opslagplaats. Zoeken naar projecten met aem-communities of aem-scf.

Best practices voor best-practices

De weergave van Codeerrichtlijnen voor verschillende coderingsrichtlijnen en aanbevolen procedures voor AEM Communities-ontwikkelaars.

Zie ook Storage Resource Provider (SRP) voor UGC voor meer informatie over het benaderen van door de gebruiker gegenereerde inhoud.

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