2017-02-06 50 views
0

没有CQ/AEM的经验,但被抛在了最后。CQ5/Adob​​e Experience Manager可以无头使用吗?

我有一个方法,我们有一个Web前端(使用Ember.js/handlebars构建)调用Web服务,该服务将反过来加入数据(例如,您观看过多少部电影)适当的内容(例如,网络服务知道要在CMS中查找节点X;“感谢观看所有这些电影!”),并将复制,图像和数据返回到单个JSON文档中。

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

但是我现在被要求让Adobe Experience Manager/CQ5成为CMS,并且需要知道是否存在相同的事情。

我不这么认为;我知道,CQ5使用任何JCR/CRX作为其内容库但从我可以看到这些不公开为Web服务(仅适用于语言层面的API)

AEM 6.2使用JCR OAK这承诺一个RESTful API。

所以总之我的问题是:JCR OAK是否提供了一个RESTful API给内容,如果有的话,任何人都可以提供任何示例/指针吗?

+3

绝对AEM可以将CRX公开为JSON。你的问题与[expose-adobe-aem-bundles-as-restful-webservices](https://stackoverflow.com/questions/41877499/expose-adobe-aem-bundles-as-restful-webservices)相同, – VAr

+0

你应该小心系统的负载。 JSON请求应该被缓存。 –

回答

3

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

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

例如:

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

返回以下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一个更加用户友好的API ;但它尚未完全完成。

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

返回以下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" 
    } 
} 

这些都是开箱即用的功能,但你总是可以创建自己的Sling Servlet揭露的内容,只要你喜欢。

1

如果无头的话,您的意思是您是否可以使用AEM而不使用它来托管您的网站,那么是的,它可以被用作Restful内容存储库,正如其他人所解释的那样。 AEM 6.1+对SPA有更多支持,因此您可能需要进行调查,而不是将其作为内容存储库使用。

相关问题