Anpassning på serversidan server-side-customization

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

Java API:er java-apis

NOTE
Platsen för paket-API:er kan ändras när du uppgraderar från en större version till nästa.

SocialComponent-gränssnitt socialcomponent-interface

SocialComponents är POJO som representerar en resurs för en AEM Communities-funktion. Helst representerar varje SocialComponent en specifik resourceType med exponerade GETters som tillhandahåller data till klienten så att resursen representeras korrekt. All affärslogik och visningslogik är inkapslade i SocialComponent, inklusive webbplatsbesökarens sessionsinformation, om det behövs.

Gränssnittet definierar en grundläggande uppsättning GETters som krävs för att representera en resurs. Viktigt är att gränssnittet anger kartan<string object=""> metoderna getAsMap() och String toJSONString() som behövs för att återge Handlebars-mallar och visa GET JSON-slutpunkter för resurser.

Alla SocialComponent-klasser måste implementera gränssnittet com.adobe.cq.social.scf.SocialComponent

SocialCollectionComponent-gränssnitt socialcollectioncomponent-interface

Gränssnittet SocialCollectionComponent utökar gränssnittet SocialComponent för att bättre representera resurser som är samlingar av andra resurser.

Alla klasser i SocialCollectionComponent måste implementera gränssnittet com.adobe.cq.social.scf.SocialCollectionComponent

SocialComponentFactory-gränssnitt socialcomponentfactory-interface

En SocialComponentFactory (fabrik) registrerar en SocialComponent med ramverket. Fabriken tillhandahåller ett sätt att meddela ramverket vilka SocialComponents som är tillgängliga för en viss resourceType och deras prioritetsranknings&ast. när flera SocialComponents identifieras.

En SocialComponentFactory ansvarar för att skapa en instans av den valda SocialComponent, vilket gör det möjligt att mata in alla beroenden som behövs av SocialComponent från fabriken med hjälp av DI-metoder.

En SocialComponentFactory är en OSGi-tjänst och har tillgång till andra OSGi-tjänster som kan skickas till SocialComponent via en konstruktor.

Alla SocialComponentFactory-klasser måste implementera gränssnittet com.adobe.cq.social.scf.SocialComponentFactory

En implementering av metoden SocialComponentFactory.getPriority() ska returnera det högsta värdet för att fabriken ska användas för den angivna resourceType som returneras av getResourceType().

SocialComponentFactoryManager-gränssnitt socialcomponentfactorymanager-interface

SocialComponentFactoryManager (hanterare) hanterar alla SocialComponents som är registrerade i ramverket och ansvarar för att välja den SocialComponentFactory som ska användas för en given resurs (resourceType). Om inga fabriker har registrerats för en viss resourceType returnerar hanteraren en fabrik med den närmast överordnade typen för den angivna resursen.

En SocialComponentFactoryManager är en OSGi-tjänst och har tillgång till andra OSGi-tjänster som kan skickas till SocialComponent via en konstruktor.

En referens till OSGi-tjänsten erhålls genom att anropa com.adobe.cq.social.scf.SocialComponentFactoryManager

HTTP API - POSTER http-api-post-requests

Klassen PostOperation postoperation-class

Slutpunkterna för HTTP API-POSTEN är PostOperation-klasser som definieras genom implementering av SlingPostOperationinterface (package org.apache.sling.servlets.post).

The PostOperationslutpunktsimplementeringsuppsättningar sling.post.operationtill ett värde som åtgärden ska svara på. Alla POST-begäranden med en:operation-parameter inställd på det värdet delegeras till den här implementeringsklassen.

The PostOperationanropar SocialOperationsom utför de åtgärder som krävs för åtgärden.

The PostOperationtar emot resultatet från SocialOperationoch returnerar rätt svar till klienten.

Klassen SocialOperation socialoperation-class

Varje SocialOperationslutpunkten utökar klassen AbstractSocialOperation och åsidosätter metoden performOperation().Den här metoden utför alla åtgärder som behövs för att slutföra åtgärden och returnera en SocialOperationResulteller i annat fall kasta en OperationException, i så fall returneras en HTTP-felstatus med ett meddelande, om ett sådant finns, i stället för den vanliga JSON-svarskoden eller HTTP-statuskoden för lyckade åtgärder.

Utöka AbstractSocialOperationgör det möjligt att återanvända SocialComponentsför att skicka JSON-svar.

Klassen SocialOperationResult socialoperationresult-class

The SocialOperationResultklassen returneras som resultatet av SocialOperationoch består av en SocialComponent, HTTP-statuskod och HTTP-statusmeddelande.

The SocialComponentrepresenterar den resurs som påverkades av åtgärden.

För en Skapa-åtgärd finns följande i SocialComponentingår i SocialOperationResultrepresenterar den resurs som just har skapats och för en Update-åtgärd representerar den resursen som ändrades av åtgärden. Nej SocialComponentreturneras för en Delete-åtgärd.

De HTTP-statuskoder som används är

  • 2010 för Create-åtgärder
  • 200 för uppdateringsåtgärder
  • 204 för raderingsåtgärder

Klassen OperationException operationexception-class

An OperationExceptonkan genereras när en åtgärd utförs om begäran inte är giltig eller om något annat fel inträffar, t.ex. interna fel, felaktiga parametervärden, felaktiga behörigheter osv. An OperationExceptionbestår av en HTTP-statuskod och ett felmeddelande som returneras till klienten som svar på PostOperatoin.

Klassen OperationService operationservice-class

Ramverket för den sociala komponenten rekommenderar att den affärslogik som ansvarar för att utföra åtgärden inte implementeras i SocialOperationi stället delegeras till en OSGi-tjänst. Med en OSGi-tjänst för affärslogik kan man SocialComponent, som SocialOperation-slutpunkt, som ska integreras med annan kod och ha olika affärslogik.

Alla OperationServiceklasser utöka AbstractOperationService, vilket tillåter ytterligare tillägg som kan knytas till den åtgärd som utförs. Varje åtgärd i tjänsten representeras av en SocialOperationklassen. The OperationExtensionsklassen kan anropas under körning genom att anropa metoderna

  • performBeforeActions()
    Tillåter förkontroller/förbehandling och validering
  • performAfterActions()
    Möjliggör ytterligare ändringar av resurser eller anrop av anpassade händelser, arbetsflöden osv.

Klassen OperationExtension operationextension-class

OperationExtensionklasser är anpassade koddelar som kan injiceras i en åtgärd som gör det möjligt att anpassa operationer efter affärsbehov. Konsumenterna av komponenten kan dynamiskt och stegvis lägga till funktioner i komponenten. Med hjälp av tilläggs-/krokmönstret kan utvecklare fokusera enbart på själva tilläggen och ta bort behovet av att kopiera och åsidosätta hela åtgärder och komponenter.

Exempelkod sample-code

Exempelkod finns i Adobe Marketing Cloud GitHub databas. Sök efter projekt med antingen aem-communities eller aem-scf.

Bästa praxis best-practices

Visa Riktlinjer för kodning för olika riktlinjer för kodning och metodtips för AEM Communities-utvecklare.

Se även Lagringsresursleverantör (SRP) för UGC om du vill veta mer om hur du får åtkomst till användargenererat innehåll.

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