API Preference Guidelines

AEM is built on the following four primary Java API sets in descending order of preference.

PriorityAPIDescription
1Adobe Experience Manager as a Cloud ServiceProduct abstractions such as pages, assets, workflows, and so on.
2Apache SlingREST and resource-based abstractions such as resources, value maps, and HTTP requests.
3Apache Jackrabbit OakData and content abstractions such as node, properties and sessions.
4Apache FelixOSGi application container abstractions such as services and (OSGi) components.

If an API is provided by AEM, prefer it over Sling, JCR, and OSGi. If AEM doesn’t provide an API, then prefer Sling over JCR and OSGi.

TIP
For details of these guidelines, see the document Understand Java API Best Practices.

AEM Delivery and Content Management Services and APIs

AEM offers customizable components and content delivery options.

FeatureDescription
The Core ComponentsStandardized Web Content Management (WCM) components for AEM to speed up development time and reduce maintenance cost of your websites
JSON ExporterDeliver the contents of any AEM page in JSON data model format
Enabling JSON Export for a ComponentGenerate JSON export of component content based on a modeler framework
Content Fragment and Content Fragment Model OpenAPIsContent Fragment and Content Fragment Model OpenAPIs
AEM REST OpenAPI for Content Fragment DeliveryA HTTP REST API on AEM Edge Delivery Services, designed to deliver structured content from Content Fragments in JSON format.
Content Fragment GraphQL APIEnable the efficient delivery of Content Fragments to JavaScript clients in headless CMS implementations
Assets APIAllows for create-read-update-delete (CRUD) operations on assets, including binary, metadata, renditions, and comments. See AEM Assets HTTP API
Content Fragments HTTP APIAccess Content Fragment content directly over the HTTP API via CRUD operations
Content Fragments Assets HTTP APIExact format of supported HTTP asset requests
NOTE
See AEM APIs for Structured Content Delivery and Management for an overview of the various APIs available and comparison of some of the concepts involved.

SPA-Specific APIs

AEM Single-Page Application (SPA) Editor SDK framework provides specific JavaScript API references.

APIDescription
Component MappingProvides a way for the Single Page Application to map front-end components to Adobe Experience Manager resource types (AEM Components)
Page Model ManagerAn interpreter between Adobe Experience Manager Editor and the Adobe Experience Manager Single Page Application (SPA) Editor
React Editable ComponentsProvides the React components and integration layer to get you started with the Adobe Experience Manager Site Editor
Angular Editable ComponentsProvides the Angular components and integration layer to get you started with the Adobe Experience Manager Site Editor
TIP
Check out the SPA Introduction and Walkthrough for more information on single-page applications.
recommendation-more-help