在 AEM Headless开发人员历程, 了解开始使用AEM Headless时需要满足哪些条件才能开始您自己的项目。
在AEM无头历程的上一个文档中, 了解CMS无头开发 您学习了无头CMS的基本理论,您现在应该:
本文基于这些基础知识,以便您了解如何使用AEM来实施无外设解决方案。
本文档可帮助您在自己项目的上下文中了解AEM Headless。 阅读本文档后,您应:
在AEM中定义无头项目之前,请务必了解一些基本的AEM概念。
最简单的方法是, AEM包含一个创作实例和一个 发布实例 可共同创建、管理和发布您的内容。
内容从创作实例开始。 这是内容作者创建其内容的位置。 创作环境为作者提供了各种工具,用于创建、组织和重复使用其内容。
在创作实例中创建内容后,必须将其发布以供其他服务使用。 发布实例包含已发布的所有内容。
复制是将内容从创作实例传输到发布实例的操作。 当作者或其他具有相应权限的用户发布内容时,AEM会自动执行此操作。
在最简单的级别上,在AEM中创建数字体验需要执行以下步骤:
AEM Headless通过提供功能强大的工具来管理无头内容(这是 在下一节中进行描述。
AEM的无头功能基于一些关键特性。 在历程的后半部分中对这些内容进行了详细解释。 现在,只要了解他们的基本操作和所谓,就很重要了。
内容片段模型定义您在AEM中创建和管理的数据和内容的结构。 它们在某种程度上用作内容的基架。选择创建内容时,作者从您定义的内容片段模型中进行选择,这将指导他们创建内容。
您可使用内容片段设计、创建、管理和发布独立于页面的内容。利用它们,您可以准备内容以用于多个位置和多个渠道。
内容片段包含结构化内容,可以采用 JSON 格式投放。
为了无拘无束地修改内容,AEM提供了两个强大的API。
您将在AEM无头历程的后续部分中了解这些API以及如何使用它们。 或者,请参阅 其他资源 部分以了解其他文档。
AEM支持CMS的全无头模型和传统的全栈或头模型。 但是,AEM不仅提供了这两种独有的选择,还提供了支持混合模型的功能,该混合模型结合了两者的优势,为您的无头项目提供了独特的灵活性。
为确保您了解无头概念,此AEM无头开发人员历程重点介绍纯无头模型,以便您尽快启动并运行,而无需在AEM中进行编码。
但是,您应该了解了解AEM无头功能后,您还会看到其他混合可能性。 下面列出了这些案例,供您了解。 在历程结束时,您将更详细地介绍这些概念,以防您的项目需要这种灵活性。
假设您的基本要求至少是要将内容从AEM交付到现有的外部服务。
此级集成是传统的无头模型,允许内容作者在AEM中创建内容,并使用GraphQL将内容无头地交付给任意数量的外部服务,或使用Assets API从外部服务编辑这些服务。 在AEM中不需要编码。
在此模型中,AEM仅用于使用AEM内容片段创建和提供内容。 呈现内容以及与内容的交互被委派给消费型外部应用程序,通常是单页应用程序(SPA)。
此级别的集成构建于第一级之上,但也允许将外部应用程序(SPA)嵌入到AEM中,以便内容作者可以在AEM内的外部应用程序上下文中查看内容。 该应用程序还支持在AEM中对外部应用程序进行有限编辑。
此级别的优势在于,允许内容作者以标题方式在AEM中灵活创作内容,其内容与嵌入的外部SPA呈现在上下文中,同时仍无拘无束地交付内容。
此级别的集成在级别2的基础上构建,具体方法是:允许外部SPA中的大多数内容在AEM中可编辑。
如果您的目标是创建一个无头地使用AEM内容的新SPA,则可以使用内容片段等功能管理您的无头内容,还可以使用AEM SPA编辑器框架构建SPA。
使用SPA编辑器,SPA不仅会使用AEM中的内容,而且内容作者还可以在AEM中完全编辑,从而让您既能够灵活地进行无标题交付,又能够在AEM中进行上下文编辑。
在开始您的无外设AEM项目之前,有许多要求。
对于任何成功的项目,不仅要明确项目的要求,还要明确其角色和责任。
必须为项目明确界定范围。 范围会告知接受标准,并允许您确定“完成”的定义。
您必须问的第一个问题是“我尝试使用AEM Headless实现什么?” 答案通常应该是,您将来拥有或将拥有一个体验应用程序,该应用程序是您使用自己的开发工具而不是AEM构建的。 此体验应用程序可以是移动设备应用程序、网站,或任何其他面向客户的最终用户体验应用程序。 使用AEM Headless的目标是使用最新的API,为您的体验应用程序提供在AEM中创建、存储和管理的内容,这些API将调用AEM Headless以直接从您的体验应用程序中获取内容,甚至是完全CRUD内容。 如果这不是你想做的,你可能想 返回到AEM文档 找到更适合您想要实现的部分。
任何单个项目的角色各不相同,但在AEM无头开发内容中需要考虑的重要角色包括:
管理员负责系统的基本设置和配置。 例如,管理员在Adobe用户管理系统(称为Identity Management系统(IMS))中设置您的组织。 管理员是组织中第一个在IMS中通过Adobe创建组织后从Adobe收到电子邮件邀请的用户。 管理员能够登录IMS并添加其他角色的用户。
管理员配置用户后,他们将有权访问所有AEM资源,以完成其作为使用AEM Headless交付体验应用程序贡献者的工作。
管理员应是设置AEM并准备要启用的运行时环境的用户 内容作者 创建和更新内容 开发人员 用于获取或修改其体验应用程序内容的API。
内容作者创建并管理由AEM无头地交付的内容。 内容作者使用AEM功能(如内容片段和资产控制台)管理其内容。
内容作者应牢记以下最佳实践。
在项目开始时计划翻译。 将“翻译专家”视为单独的角色,其职责是定义哪些内容应被翻译、哪些不应被翻译,哪些翻译内容可能由区域或本地内容制作者修改。
创建所需内容翻译的计划。
请明确您的内容更新工作流程。 系统必须支持哪些审批流程? 是否可以利用AEM工作流来自动执行此过程?
请注意,您的 内容层次结构 可简化翻译。
请参阅 其他资源 部分以了解有关AEM工作流和翻译工具的其他文档,包括指向AEM无头翻译历程的链接。
文件夹层次结构可以解决与内容管理有关的两个主要问题:
AEM允许灵活的内容结构,并且层级可以任意大。 但是,必须认识到,对文件夹结构所做的任何更改都可能会对现有查询产生意想不到的后果 依赖内容路径。 因此,预先明确定义的层级结构对内容作者可能会有所帮助。
文件夹也可以限制为仅允许某些类型的内容(基于内容片段模型)。 建议始终明确指定允许使用哪些模型来访问层次结构中的所有文件夹。 为给定文件夹指定允许的内容:
通过创建适当的内容结构,可以更轻松地跨渠道协调无头内容创作,以最大限度地重复利用内容。 跨多个渠道利用内容可极大地提高内容生产效率和更改管理。
内容片段名称必须为内容作者提供描述性。 AEM可透明地处理转义和/或截断存储库级别上使用的ID的名称。 因此,内容作者提供的逻辑名称应始终可读并表示内容。
cta_btn_1
Call To Action Button
请参阅 其他资源 部分以了解有关AEM页面命名约定的其他文档。
内容片段 用于创建无头内容。 AEM最多支持对内容片段嵌套10级内容。 但是,请务必记住,AEM必须迭代解析父内容片段中定义的每个引用,然后检查所有同级中是否存在任何子引用。 这些操作可以快速加总,并成为性能问题。
作为一般经验法则,内容片段引用不应嵌套在五个级别以上。
内容架构师会分析必须毫无头绪地提供数据的要求,并定义此数据的结构。 这些结构称为 内容片段模型 在AEM中。 内容片段模型用作内容作者创建的内容片段的基础。
定义内容片段模型时的一种有用方法是创建映射到使用内容的应用程序的UX组件的模型。
由于内容作者在创建新内容时会不断与模型交互,因此将模型与UX保持一致有助于他们可视化最终的数字体验。 更进一步地,您可以向内容片段模型分配表示UX元素的图标,以便作者能够根据视觉提示直观地选择正确的模型。
开发人员负责将在AEM中无头创建的内容与该内容的消费者连接在一起,这些内容通常可以是单页应用程序(SPA)、渐进式Web应用程序(PWA)、Web Shop或AEM外部的其他服务。
GraphQL充当AEM与无头内容使用者之间的“胶水”。 GraphQL是用于查询AEM所需内容的语言。
开发人员在规划其查询时应牢记一些基本建议:
ByPath
)来检索内容片段。
select *
-type查询,您可以在关系数据库中创建该查询。对于 使用AEM的典型无头实施, 开发人员不需要AEM的编码知识。
要使任何项目成功,必须在创建任何内容之前考虑性能。
您必须了解用户/访客对这些方面的期望和设计。 设置服务级别目标(SLO)并衡量这些目标,以了解您是否满足用户的期望。
要了解流量和流量模式,首先要收集您过去所了解的信息,然后预测未来几年的预期增长。 需要考虑的一些最重要的变量:
通常,不同体验部分的内容更新频率不同。 了解这一点对于能够优化CDN和缓存配置非常重要。 这也是 内容架构师 设计模型来表示您的内容。 请考虑:
现在,您已完成AEM Headless开发人员历程的这一部分,接下来您应该:
您应该通过下一步审阅文档来继续您的AEM无头历程 使用AEM Headless获得首个体验的路径 您将在何处了解如何设置必要的工具,以及如何开始考虑在AEM中建模数据。
虽然建议您通过审阅文档来进入无头开发历程的下一部分 使用AEM Headless获得首个体验的路径, 以下是一些其他可选资源,可更深入地了解本文档中提到的某些概念,但无需继续进行无头历程。