Adobe Experience Manager (AEM) provides many APIs for developing applications and extending AEM. AEM is built on top of a number of open-source technologies, which can also be leveraged.
The following APIs are core to AEM.
|Adobe Experience Manager as a Cloud Service||Product abstractions such as pages, assets, workflows, etc.|
|Granite UI||Adobe’s Open Web stack, providing various essential components (Note that the 6.5 Granite materials apply to AEMaaCS)|
|Coral UI||Adobe’s visual style for cloud UIs, designed to provide consistency in the user experience|
AEM relies on a number of additional open-source APIs.
|Apache Sling||Web framework that uses a Java Content Repository (JCR) to store and manage content|
|Apache Jackrabbit Oak||Implementation a scalable and high-performance hierarchical Java Content Repository (JCR) for use as the foundation of modern world-class web sites|
|Java Content Repository||Specification for the JCR Version 2.0|
|Apache Felix||Implementation of the Open Services Gateway initiative (OSGi) framework and service platform|
AEM is built on the following four primary Java API sets in descending order of preference.
|1||Adobe Experience Manager as a Cloud Service||Product abstractions such as pages, assets, workflows, etc.|
|2||Apache Sling||REST and resource-based abstractions such as resources, value maps, and HTTP requests.|
|3||Apache Jackrabbit Oak||Data and content abstractions such as node, properties and sessions.|
|4||Apache Felix||OSGi 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.
For details of these guidelines, see the document Understand Java API Best Practices.
AEM offers customizable components and content delivery options.
|The Core Components||Standardized Web Content Management (WCM) components for AEM to speed up development time and reduce maintenance cost of your websites|
|JSON Exporter||Deliver the contents of any AEM page in JSON data model format|
|Enabling JSON Export for a Component||Generate JSON export of component content based on a modeler framework|
|Assets API||Allows for create-read-update-delete (CRUD) operations on assets, including binary, metadata, renditions, and comments. See AEM Assets HTTP API|
|Content Fragments HTTP API||Access Content Fragment content directly over the HTTP API via CRUD operations|
|Content Fragments Assets HTTP API||Eexact format of supported HTTP asset requests|
|Component Mapping||Provides a way for the Single Page Application to map front-end components to Adobe Experience Manager resource types (AEM Components)|
|Page Model Manager||An interpreter between Adobe Experience Manager Editor and the Adobe Experience Manager Single Page Application (SPA) Editor|
|React Editable Components||Provides the React components and integration layer to get you started with the Adobe Experience Manager Site Editor|
|Angular Editable Components||Provides the Angular components and integration layer to get you started with the Adobe Experience Manager Site Editor|
Check out the SPA Introduction and Walkthrough for more information on single-page applications.