AEM中使用Content Fragments和GraphQL


1. 前置准备

启用Content Fragment功能

进入Tools > General > Configuration Browser
创建或检查配置,✅ 确保配置中已启用内容片段模型(Content Fragment Models)
在这里插入图片描述

将配置应用到Assets文件夹

进入 Assets > Files,选择目标文件夹,打开 Properties > Cloud Services,然后应用刚创建的配置。
在这里插入图片描述

2. 创建Content Fragment Model

进入 Tools > General > Content Fragment Models,选择刚才创建的配置。(✅ 确认内容片段模型已启用。如果无法选择目标文件夹,请回到配置中检查这个设置)。创建一个新的内容片段模型,在模型设置中,勾选启用模型,
在这里插入图片描述

打开模型,编辑并保存。
在这里插入图片描述

3. 创建Content Fragment

进入 Navigation > Content Fragments,选择与配置关联的文件夹(步骤1.2),使用刚创建的内容片段模型,创建一个新的内容片段。
在这里插入图片描述

打开内容片段,填写数据。(数据会自动保存)
在这里插入图片描述

4. 创建GraphQL Endpoint

进入 Tools > General > GraphQ,选择刚创建的配置,并创建GraphQL endpoint
在这里插入图片描述

5. 使用 GraphiQL 工具

进入 Tools > General > GraphQL Query Editor,右上角选择对应 endpoint,编写查询语句,并运行获取结果。
在这里插入图片描述

6. 在发布环境中使用

a. 将 Content Fragment Model, Content Fragments, and GraphQL Endpoint 发布到发布环境

b. 找到 endpoint 路径
在这里插入图片描述

c. 使用以下格式访问查询接口:

https://{AEM域名}/{endpoint路径}/endpoint.json

✅ 注意:将 endpoint 路径中的 cq:graphql 替换为 _cq_graphql

7. 使用持久化查询(Persisted Queries)

在配置中启用GraphQL持久化查询。
在这里插入图片描述

在GraphiQL IDE中刷新页面,点击另存为,然后点击发布保存的查询。
在这里插入图片描述

复制持久化查询的URL
在这里插入图片描述

URL格式如下:

https://{AEM域名}/graphql/execute.json/{配置名称}/{持久化查询名称}

示例:

https://xxx.com/graphql/execute.json/gary-test/First Persisted Query

8. 常见问题 - Dispatcher拦截导致的404问题

如果 GraphQL endpoint 在发布实例上返回404错误(特别是POST请求),说明是Dispatcher拦截了GraphQL请求,解决办法是手动在Dispatcher配置中添加以下规则:

// 允许GraphQL端点
/0060 { /type "allow" /method '(POST|OPTIONS)' /url "/content/_cq_graphql/*/endpoint.json" }

// 允许GraphQL持久化查询
/0061 { /type "allow" /method '(GET|POST|OPTIONS)' /url "/graphql/execute.json*" }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值