AEM无头快速设置可让您使用WKND网站示例项目中的内容,以及通过AEM无头GraphQL API使用内容的示例React应用程序(SPA),来实践AEM无头。 本指南使用 AEMas a Cloud ServiceSDK.
应在本地安装以下工具:
此设置使用 AEMas a Cloud ServiceSDK 浏览AEM GraphQL API。 本节提供了有关安装AEM SDK并在创作模式下运行该SDK的快速指南。 有关设置本地开发环境的更详细指南 可在此处找到.
您还可以在本教程的后面使用 AEMas a Cloud Service环境. 整个教程中都包含有关使用云环境的其他说明。
导航到 软件分发门户 > AEMas a Cloud Service 并下载 AEM SDK.
默认情况下,仅在2021-02-04或更高版本的AEM SDK上启用GraphQL功能。
解压缩下载并复制快速入门Jar(aem-sdk-quickstart-XXX.jar
)到专用文件夹,例如 ~/aem-sdk/author
.
将jar文件重新命名为 aem-author-p4502.jar
.
的 author
名称指定快速入门jar将以“创作”模式启动。 的 p4502
指定快速启动服务器将在端口4502上运行。
打开新的“终端”窗口,然后导航到包含jar文件的文件夹。 运行以下命令以安装和启动AEM实例:
$ cd ~/aem-sdk/author
$ java -jar aem-author-p4502.jar
提供管理员密码作为 admin
. 可接受任何管理员密码,但建议使用 admin
用于本地开发,以减少重新配置的需要。
几分钟后,AEM实例将完成安装,并且新的浏览器窗口应会在 http://localhost:4502.
使用用户名登录 admin
和在AEM初始启动期间选择的密码(通常 admin
)。
示例内容 WKND参考站点 将安装以加速教程。 WKND是一个虚构的生命风格品牌,通常与AEM培训结合使用。
WKND引用站点包含公开 GraphQL端点. 在实际实施中,按照 包括GraphQL端点 在您的客户项目中。 A CORS 也被打包为WKND站点的一部分。 需要CORS配置才能授予对外部应用程序的访问权限,有关 CORS 可在下面找到。
下载适用于WKND站点的最新编译的AEM包: aem-guides-wknd.all-x.x.x.zip.
确保下载与AEM as a Cloud Service兼容的标准版本,以及 not the classic
版本。
从 AEM开始 菜单导航到 工具 > 部署 > 包.
单击 上传包 并选择在上一步骤中下载的WKND包。 单击 安装 来安装包。
从 AEM开始 菜单导航到 资产 > 文件.
单击文件夹以导航到 WKND站点 > 英语 > 冒险.
这是构成WKND品牌推广的各种Adventures的所有资产的文件夹。 这包括传统媒体类型(如图像和视频),以及特定于AEM的媒体,如 内容片段.
单击 怀俄明州速降滑雪 文件夹,然后单击 怀俄明山滑雪内容片段 卡片:
内容片段编辑器UI将打开,用于怀俄明州下山滑雪探险。
请注意, 标题, 描述和 活动 定义片段。
内容片段 是在AEM中管理内容的一种方式。 内容片段是可重用的、与呈现形式无关的内容,由结构化数据元素(如文本、富文本、日期或对其他内容片段的引用)组成。 在教程的后面部分,将更详细地探索内容片段。
单击 取消 来关闭片段。 您可以随意导航到其他一些文件夹,并浏览其他Adventure内容。
如果使用Cloud Service环境,请参阅有关如何 将类似WKND引用站点的代码库部署到Cloud Service环境.
本教程的目标之一是演示如何使用GraphQL API从外部应用程序中使用AEM内容。 本教程使用已部分完成的React应用程序示例来加速教程。 同样的课程和概念也适用于使用iOS、Android或任何其他平台构建的应用程序。 React应用程序特意简单,以避免不必要的复杂性;它不是引用实施。
使用Git打开新的终端窗口和克隆教程启动器分支:
$ git clone --branch tutorial/react git@github.com:adobe/aem-guides-wknd-graphql.git
在选择的IDE中,打开文件 .env.development
at aem-guides-wknd-graphql/react-app/.env.development
. 验证 REACT_APP_AUTHORIZATION
行未添加注释,且文件如下所示:
REACT_APP_HOST_URI=http://localhost:4502
REACT_APP_GRAPHQL_ENDPOINT=/content/graphql/global/endpoint.json
# Use Authorization when connecting to an AEM Author environment
REACT_APP_AUTHORIZATION=admin:admin
确保 React_APP_HOST_URI
匹配您的本地AEM实例。 在本章中,我们将React应用程序直接连接到AEM 作者 环境。 作者 默认情况下,环境需要进行身份验证,因此我们的应用程序将作为 admin
用户。 这是开发过程中的常见做法,因为它允许我们快速在AEM环境中进行更改,并立即在应用程序中反映这些更改。
在生产方案中,应用程序将连接到AEM 发布 环境。 有关详细信息,请参阅 生产部署 章节。
导航到 aem-guides-wknd-graphql/react-app
文件夹。 安装并启动应用程序:
$ cd aem-guides-wknd-graphql/react-app
$ npm install
$ npm start
新的浏览器窗口应会自动在 http://localhost:3000.
应显示AEM中当前Adventure内容的列表。
单击其中一张冒险图像可查看冒险详细信息。 系统会向AEM发出请求,以返回冒险的详细信息。
使用浏览器的开发人员工具检查 网络 请求。 查看 XHR 请求和观察多个POST请求 /content/graphql/global/endpoint.json
,为AEM配置的GraphQL端点。
您还可以通过检查网络请求来查看参数和JSON响应。 安装诸如之类的浏览器扩展可能会有所帮助 GraphQL网络检查器 ,以便更好地了解查询和响应。
现在,React应用程序正在运行,请更新AEM中的内容,并查看应用程序中反映的更改。
导航到AEM http://localhost:4502.
导航到 资产 > 文件 > WKND站点 > 英语 > 冒险 > 巴厘岛冲浪营.
单击 巴厘岛冲浪营 用于打开内容片段编辑器的内容片段。
修改 标题 和 描述 冒险之旅
单击 保存 以保存更改。
导航回位于的React应用程序 http://localhost:3000 并刷新以查看更改:
GraphiQL 是开发工具,仅在开发或本地实例等较低级别环境中需要。 GraphiQL IDE允许您快速测试和优化返回的查询和数据。 GraphiQL还提供对文档的轻松访问,从而便于学习和了解可用的方法。
导航到 软件分发门户 > AEMas a Cloud Service.
搜索“GraphiQL”(请务必包含 i in GraphiQL.
下载最新版本 GraphiQL内容包v.x.x.x
zip文件是可直接安装的AEM包。
从 AEM开始 菜单导航到 工具 > 部署 > 包.
单击 上传包 并选择在上一步骤中下载的包。 单击 安装 来安装包。
导航到GraphiQL IDE(位于 http://localhost:4502/content/graphiql.html 并开始浏览GraphQL API。
GraphiQL工具和GraphQL API是 稍后在教程中详细探讨了.
恭喜,您现在有一个外部应用程序使用GraphQL的AEM内容。 您可以随时在React应用程序中检查代码,并继续尝试修改现有的内容片段。
AEM在默认情况下是安全的,它会阻止跨域请求,从而阻止未经授权的应用程序连接到并显示其内容。
为了允许本教程的React应用程序与AEM GraphQL API端点进行交互,已在WKND站点引用项目中定义了跨源资源共享配置。
要查看已部署的配置,请执行以下操作:
导航到AEM SDK的Web控制台(位于 http://localhost:4502/system/console.
Web控制台仅在SDK上可用。 在AEMas a Cloud Service环境中,可以通过 开发人员控制台.
在顶部菜单中,单击 OSGI > 配置 把所有 OSGi配置.
向下滚动页面 AdobeGranite跨源资源共享.
单击的配置 com.adobe.granite.cors.impl.CORSPolicyImpl~wknd-graphql
.
以下字段已更新:
http://localhost:.*
/content/graphql/global/endpoint.json
GET
, HEAD
, POST
POST
GraphQL是必需的,但是,在以无头方式与AEM交互时,其他方法可能很有用。Yes
此配置和GraphQL端点是AEM WKND项目的一部分。 您可以查看 此处的OSGi配置.