在 AEM Headless 开发人员历程的这一部分中,了解如何使用 REST API 访问和更新内容片段的内容。
在 AEM Headless 历程的上一个文档如何通过 AEM 交付 API 访问您的内容中,您已了解如何通过 AEM GraphQL API 访问 AEM 中的 Headless 内容,您现在应该:
本文基于这些基础知识编写,以便您了解如何通过 REST API 更新 AEM 中现有的 Headless 内容。
在 Headless 历程的上一个阶段,您已了解如何使用 AEM GraphQL API 通过查询来检索您的内容。
那么,为什么需要另一个 API 呢?
Assets HTTP API 不仅可让您读取内容,还可让您创建、更新和删除内容,这些操作无法通过 GraphQL API 执行。
Assets REST API 在最新版本的 Adobe Experience Manager 的每个现成安装中提供。
Assets HTTP API 包含:
Assets HTTP API 的当前实施基于 REST 架构样式,并使您能够通过 CRUD 操作(创建、读取、更新、删除)访问内容(存储在 AEM 中)。
通过这些操作,API允许您通过向JavaScript前端应用程序提供内容服务,将Adobe Experience Manager作为Headless CMS(内容管理系统)运行。 或者,任何其他可以执行 HTTP 请求并处理 JSON 响应的应用程序。例如,基于框架或自定义的单页应用程序 (SPA) 需要通过 API 提供的内容(通常采用 JSON 格式)。
内容片段用于 Headless 交付,它是一种特殊类型的资源。它们用于访问结构化数据,例如文本、数字、日期等。
Assets REST API 使用 /api/assets
端点并需要资产路径才能访问资产(不带前导 /content/dam
)。
/content/dam/path/to/asset
/api/assets/path/to/asset
例如,要访问 /content/dam/wknd/en/adventures/cycling-tuscany
,需要请求 /api/assets/wknd/en/adventures/cycling-tuscany.json
访问:
/api/assets
不需要使用 .model
选择器。/content/path/to/page
需要使用 .model
选择器。HTTP 方法决定了要执行的操作:
请求正文和/或 URL 参数可用于配置其中一些操作;例如,定义文件夹或资产应由 POST 请求创建。
API 引用文档中将定义受支持请求的准确格式。
根据您使用的是 AEM 创作环境还是发布环境以及您的具体用例,使用情况可能会有所不同。
强烈建议您将创建绑定到创作实例(目前无法使用此 API 复制要发布的片段)。
可以通过这两种方式交付,因为 AEM 仅以 JSON 格式提供请求的内容。
来自 AEM 创作实例的存储和交付应足以满足防火墙背后的媒体库应用程序的需求。
对于实时 Web 交付,建议使用 AEM 发布实例。
AEM实例上的Dispatcher配置可能会阻止对的访问 /api
.
有关更多详细信息,请参阅 API 引用。具体而言,Adobe Experience Manager Assets API – 内容片段。
使用者式:
GET /{cfParentPath}/{cfName}.json
例如:
http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json
响应是序列化的 JSON,其内容的结构与内容片段中的一样。引用将作为引用 URL 提供。
可以执行两种类型的读取操作:
使用者式:
POST /{cfParentPath}/{cfName}
正文必须包含要创建的内容片段的 JSON 表示形式,包括应在内容片段元素上设置的任何初始内容。必须设置 cq:model
属性,并且该属性必须指向有效的内容片段模型。如果不这样做,将导致出错。此外,还必须添加一个设置为 application/json
的标头 Content-Type
。
使用者式
PUT /{cfParentPath}/{cfName}
正文必须包含要为给定内容片段更新的内容的 JSON 表示形式。
这可以是内容片段的标题或描述、单个元素或所有元素值和/或元数据。
使用者式:
DELETE /{cfParentPath}/{cfName}
有关使用 AEM Assets REST API 的更多详细信息,您可以引用:
现在您已完成 AEM Headless 开发人员历程的这一部分,您应:
您应该通过下一次查看文档来继续您的AEM Headless历程 如何使用Headless应用程序上线 您实际将AEM Headless项目上线的位置!