没有使用CQ / AEM的经验,但却陷入了深层次。
我有一种方法,我们有一个网络前端(使用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,如果有的话,任何人都可以提供任何示例/指针吗?
答案 0 :(得分: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"
}
}
这些是OOTB功能,但您始终可以创建自己的Sling Servlet来公开您喜欢的内容。
答案 1 :(得分:1)
如果,无头,你的意思是你是否可以使用AEM而不使用它来托管你的网站,那么是的,它可以被用作其他人解释的Restful内容库。 AEM 6.1+对SPA有更多支持,因此您可能希望对其进行调查,而不是仅仅将其用作内容存储库。