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 时,这非常有效。
然而,我现在被要求将 Adobe 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 提供了更多支持,因此您可能希望对其进行调查,而不是继续将其仅用作内容存储库。
没有使用 CQ/AEM 的经验,但深陷其中。
我有一个方法,我们有一个 Web 前端(使用 Ember.js/handlebars 构建)调用一个 Web 服务,该服务反过来加入数据(例如有多少您看过的电影)和适当的内容(例如,网络服务知道在 CMS 中查找节点 X;"Thanks for watching all those movies!")和 return 单个 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,如果可以,有人可以提供 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 提供了更多支持,因此您可能希望对其进行调查,而不是继续将其仅用作内容存储库。