如何通过AEM Assets API更新您的内容

AEM Headless开发人员历程, 了解如何使用REST API访问和更新内容片段的内容。

迄今为止的故事

在AEM无头历程的上一个文档中, 如何通过AEM交付API访问您的内容 您学习了如何通过AEM GraphQL API在AEM中访问无头内容,现在应该:

  • 深入了解GraphQL。
  • 了解AEM GraphQL API的工作方式。
  • 了解一些实用的示例查询。

本文基于这些基础知识,以便您了解如何通过REST API在AEM中更新现有的无头内容。

目标

  • 受众:高级
  • 目标:了解如何使用REST API访问和更新内容片段的内容:
    • 介绍AEM Assets HTTP API。
    • 介绍并讨论API中的内容片段支持。
    • 说明API的详细信息。

为什么内容片段需要资产HTTP API

在无头历程的上一步中,您了解了如何使用AEM GraphQL API来使用查询检索内容。

那么,为何需要其他API?

资产HTTP API允许您 读取 您的内容,但它也允许您 创建, 更新删除 内容 — GraphQL API无法执行的操作。

在最新Adobe Experience Manager版本的每次现成安装中,都提供Assets REST API。

资产 HTTP API

资产HTTP API包括:

  • 资产REST API
  • 包括对内容片段的支持

资产HTTP API的当前实施基于 REST 架构样式,并允许您通过 CRUD 操作(创建、读取、更新、删除)。

通过这些操作,API允许您通过向JavaScript前端应用程序提供内容服务,将Adobe Experience Manager作为无头CMS(内容管理系统)进行操作。 或任何可以执行HTTP请求并处理JSON响应的其他应用程序。 例如,单页应用程序(SPA)(基于框架或自定义)需要通过API提供的内容,通常采用JSON格式。

资产HTTP API和内容片段

内容片段用于无标题交付,而内容片段是一种特殊类型的资产。 它们用于访问结构化数据,例如文本、数字、日期等。

使用资产REST API

访问

资产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 does 要求使用 .model 选择器。

操作

HTTP方法确定要执行的操作:

  • GET — 检索资产或文件夹的JSON表示形式
  • POST — 创建新资产或文件夹
  • PUT — 更新资产或文件夹的属性
  • DELETE — 删除资产或文件夹
注意

请求正文和/或URL参数可用于配置其中的一些操作;例如,定义文件夹或资产应由 POST 请求。

支持的请求的确切格式在API引用文档中定义。

用法可能因您使用的是AEM创作环境还是发布环境以及特定用例而异。

  • 强烈建议将创建绑定到创作实例(并且当前没有方法使用此API复制片段以发布)。

  • 可以同时从两者进行交付,因为AEM仅以JSON格式提供请求的内容。

    • 从AEM创作实例进行存储和交付应足以在防火墙后部署媒体库应用程序。

    • 对于实时Web交付,建议使用AEM发布实例。

注意

AEM实例上的调度程序配置可能会阻止访问 /api.

注意

有关更多详细信息,请参阅API引用。 特别是, Adobe Experience Manager Assets API — 内容片段.

读取/投放

用法包括:

GET /{cfParentPath}/{cfName}.json

例如:

http://<host>/api/assets/wknd/en/adventures/cycling-tuscany.json

响应将以内容片段中的结构化进行序列化JSON。 引用作为引用URL提供。

可以执行两种类型的读取操作:

  • 按路径读取特定内容片段,将返回内容片段的JSON表示形式。
  • 按路径读取内容片段的文件夹:这会返回文件夹中所有内容片段的JSON表示形式。

创建

用法包括:

POST /{cfParentPath}/{cfName}

主体必须包含要创建的内容片段的JSON表示形式,包括应在内容片段元素中设置的任何初始内容。 必须将 cq:model 属性,且必须指向有效的内容片段模型。 如果不这样做,则会导致错误。 还需要添加标头 Content-Type 将设置为 application/json.

更新

使用方式为

PUT /{cfParentPath}/{cfName}

正文必须包含要为给定内容片段更新内容的JSON表示形式。

这可以只是内容片段、单个元素或所有元素值和/或元数据的标题或描述。

删除

用法包括:

DELETE /{cfParentPath}/{cfName}

有关使用AEM Assets REST API的更多详细信息,您可以引用:

  • Adobe Experience Manager Assets HTTP API(其他资源)
  • AEM Assets HTTP API中的内容片段支持(其他资源)

下一步

现在,您已完成AEM Headless开发人员历程的这一部分,接下来您应该:

  • 了解AEM Assets HTTP API的基础知识。
  • 了解此API如何支持内容片段。

您应该通过下一步审阅文档来继续您的AEM无头历程 如何使用您的无头应用程序 您实际将AEM Headless项目上线!

其他资源

在此页面上