Aanpassing aan serverzijde

Essentiële ⇐ Aanpassing aan clientzijde☐
SCF Handlebars Helpers

Java API's

OPMERKING

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

Interface van sociale component

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 Map<String, Object> getAsMap () en String toJSONString () methodes die noodzakelijk zijn om de malplaatjes van Handlebars terug te geven en GET JSON eindpunten voor middelen bloot te stellen.

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

Interface SocialCollectionComponent

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

Een SocialComponentFactory (factory) registreert een SocialComponent met het framework. De fabriek biedt een manier om het framework te laten weten welke sociale componenten beschikbaar zijn voor een bepaald resourceType en hun prioriteitsrangschikking* 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 com.adobe.cq.social.scf.SocialComponentFactory uitvoeren

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

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 greep van de OSGi-service wordt verkregen door com.adobe.cq.social.scf.SocialComponentFactoryManager aan te roepen

HTTP API - POST vraagt

PostOperation-klasse

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

De PostOperationendpoint implementatie plaatst sling.post.operationaan een waarde waarop de verrichting zal antwoorden. Alle verzoeken van de POST met een:parameter van de verrichting die aan die waarde wordt geplaatst zullen aan deze implementatieklasse worden gedelegeerd.

Met PostOperationwordt de SocialOperationaangeroepen die de handelingen uitvoert die nodig zijn voor de bewerking.

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

Klasse SocialOperation

Elk SocialOperationeindpunt breidt de klasse AbstractSocialOperation uit en treedt de methode performOperation().Deze methode voert alle acties uit nodig om de verrichting te voltooien en terug te keren SocialOperationResultof anders een OperationException werpen, in welk geval een HTTP- foutenstatus met een bericht, als beschikbaar, wordt teruggekeerd in plaats van de normale JSON reactie of de statuscode van succesHTTP.

Als u AbstractSocialOperationuitbreidt, kunt u SocialComponentsopnieuw gebruiken om JSON-reacties te verzenden.

SocialOperationResult-klasse

De klasse 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 Create verrichting, SocialComponentinbegrepen in SocialOperationResultvertegenwoordigt het middel enkel gecreeerd en voor een verrichting van de Update, vertegenwoordigt het de middel die door de verrichting werd veranderd. Er wordt geen SocialComponentgeretourneerd voor een verwijderbewerking.

De gebruikte HTTP-statuscodes voor succesmeldingen zijn:

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

OperationException-klasse

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

OperationService-klasse

Het sociale componentenkader adviseert dat de bedrijfslogica verantwoordelijk voor het uitvoeren van de verrichting niet binnen de SocialOperationklasse wordt uitgevoerd, maar in plaats daarvan aan een dienst wordt gedelegeerd OSGi. Het gebruiken van de dienst OSGi voor bedrijfslogica staat een SocialComponent toe, die op door een SocialOperationeindpunt wordt gehandeld, om met andere code worden geïntegreerd en verschillende toegepaste bedrijfslogica hebben.

Alle OperationServiceklassen breiden AbstractOperationService uit, die extra uitbreidingen toestaan die in de verrichting kunnen aansluiten die wordt uitgevoerd. Elke verrichting in de dienst wordt vertegenwoordigd door een SocialOperationklasse. De klasse OperationExtensionskan 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

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

De code van de steekproef is beschikbaar in Adobe Marketing Cloud GitHub bewaarplaats. Zoek naar projecten die met of aem-communities of aem-scf vooraf zijn.

Best practices voor

Bekijk de sectie Coderingsrichtlijnen voor verschillende codeerrichtlijnen en aanbevolen procedures voor AEM Communities-ontwikkelaars.

Zie ook Storage Resource Provider (SRP) voor UGC voor meer informatie over de toegang tot door de gebruiker gegenereerde inhoud.

Essentiële ⇐ Aanpassing aan clientzijde☐
SCF Handlebars Helpers

Op deze pagina