Adobe Experience Manager (AEM) is built on a rich open-source software stack that exposes many Java APIs for use during development. This article explores the major APIs and when and why they should be used.
AEM is built on 4 primary Java API sets.
1. Adobe Experience Manager (AEM)
2. Product abstractions such as pages, assets, workflows, etc.
Apache Sling Web Framework
3. REST and resource-based abstractions such as resources, value maps, and HTTP requests.
JCR (Apache Jackrabbit Oak)
4. Data and content abstractions such as node, properties and sessions.
OSGi (Apache Felix)
OSGi application container abstractions such as services and (OSGi) components.
AEM API JavaDocs
AEM APIs provide abstractions and functionality specific to productized use cases.
For example, AEM’s PageManager and Page APIs provide abstractions for cq:Page nodes in AEM that represent web pages.
While these nodes are available via Sling APIs as Resources, and JCR APIs as Nodes, AEM’s APIs provide abstractions for common use cases. Using the AEM APIs ensures consistent behavior between AEM the product, and customizations and extensions to AEM.