CQ5/Adobe Experience Manager 可以无头使用吗?

Can CQ5/Adobe Experience Manager be used headless?

没有使用 CQ/AEM 的经验,但深陷其中。

我有一个方法,我们有一个 Web 前端(使用 Ember.js/handlebars 构建)调用一个 Web 服务,该服务反过来加入数据(例如有多少您看过的电影)和适当的内容(例如,网络服务知道在 CMS 中查找节点 X;"Thanks for watching all those movies!")和 return 单个 JSON 中的副本、图像和数据] 文件。

当我有 RESTful API 到 CMS 时,这非常有效。

然而,我现在被要求将 Adob​​e Experience Manager/CQ5 作为 CMS,并且需要知道是否存在相同的东西。

我不这么认为;我知道 CQ5 使用 JCR/CRX 作为其内容存储库,但据我所知,这些内容并未作为 Web 服务公开(仅语言级别 API 可用)

AEM 6.2 使用 JCR OAK,承诺 RESTful API.

简而言之,我的问题是:JCR OAK 是否为内容提供 RESTful API,如果可以,有人可以提供 examples/pointers 吗?

AEM 自带 Apache Sling,它允许您通过 HTTP 请求访问 JCR 的内容。

DefaultGetServlet 允许您使用 json 扩展以 JSON 格式呈现内容。

例如:

http://localhost:4502/content/geometrixx-outdoors/en/men.infinity.json

Returns 以下 JSON (为便于阅读而缩短):

{
    jcr:primaryType: "cq:Page",
    jcr:createdBy: "admin",
    jcr:created: "Mon Jan 09 2017 14:44:46 GMT+1100",
    jcr:content: {
        jcr:primaryType: "cq:PageContent",
        jcr:mixinTypes: [
            "cq:LiveSync"
        ],
    jcr:createdBy: "admin",
    jcr:title: "Men's"
}

从 AEM 6.1 开始,还有一个基于 Siren 的 user-friendly API;然而它还没有完全完成。

http://localhost:4502/api.json/content/geometrixx-outdoors/en/men.html

Returns 以下 JSON (为便于阅读而缩短):

{
    links: [
    {
        rel: [
            "self"
        ],
         href: "http://localhost:4502/api.json"
    },
    {
        rel: [
            "assets"
        ],
        href: "http://localhost:4502/api/assets.json"
    }
    ],
    class: [
        "core/services"
    ],
    properties: {
        name: "api"
    }
}

这些是 OOTB 功能,但您始终可以创建自己的 Sling Servlet 来公开您喜欢的内容。

如果说无头,您的意思是您是否可以在不使用 AEM 来托管您的网站的情况下使用它,那么是的,它可以用作 Restful 内容存储库,正如其他人所解释的那样。 AEM 6.1+ 对 SPA 提供了更多支持,因此您可能希望对其进行调查,而不是继续将其仅用作内容存储库。