文章目录
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*" }