Adobe Experience Manager Assets HTTP API

概述

Assets HTTP API允许对数字资产(包括元数据、演绎版和注释)以及使用Experience Manager内容片段的结构化内容执行创建 — 读取 — 更新 — 删除(CRUD)操作。 它在/api/assets公开,并作为REST API实现。 它包括对内容片段的支持。

要访问API:

  1. 打开位于https://[hostname]:[port]/api.json的API服务文档。
  2. 按照Assets服务链接,指向https://[hostname]:[server]/api/assets.json

API响应是某些MIME类型的JSON文件和所有MIME类型的响应代码。 JSON响应是可选的,可能不可用,例如PDF文件。 依赖响应代码进行进一步的分析或操作。

注意

与上传或更新资产或二进制文件(如演绎版)相关的所有API调用在Experience Manager部署中已弃用。 Cloud Service对于上传二进制文件,请改用直接二进制上传API

内容片段

内容片段是一种特殊的资产类型。 它可用于访问结构化数据,如文本、数字、日期等。 由于standard资产(如图像或文档)存在多种差异,因此处理内容片段时会应用一些其他规则。

有关详细信息,请参阅 Experience Manager Assets HTTP API🔗中的内容片段支持。

数据模型

Assets HTTP API公开两个主要元素、文件夹和资产(对于标准资产)。 此外,它还针对描述内容片段中结构化内容的自定义数据模型公开了更详细的元素。 有关详细信息,请参阅内容片段数据模型

文件夹

文件夹与传统文件系统中的目录类似。 文件夹只能包含资产、文件夹或文件夹和资产。 文件夹具有以下组件:

实体:文件夹的实体是其子元素,可以是文件夹和资产。

属性:

  • name 是文件夹的名称。这与没有扩展名的URL路径中的最后一个区段相同。
  • title 是文件夹的可选标题,可以显示该标题而不是其名称。
注意

文件夹或资产的某些属性会映射到其他前缀。 将jcr:titlejcr:descriptionjcr:languagejcr前缀替换为dc前缀。 因此,在返回的JSON中,dc:titledc:description分别包含jcr:titlejcr:description的值。

LinksFolders 公开三个链接:

  • self:链接到自身。
  • parent:链接到父文件夹。
  • thumbnail:(可选)指向文件夹缩略图图像的链接。

资产

在Experience Manager中,资产包含以下元素:

  • 资产的属性和元数据。
  • 资产最初上传的二进制文件。
  • 已配置多个再现。 这些图像可以是不同大小的图像、不同编码的视频或从PDF或Adobe InDesign文件提取的页面。
  • 可选注释。

有关内容片段中元素的信息,请参阅Experience Manager资产HTTP API🔗中的内容片段支持。

在Experience Manager中,文件夹包含以下组件:

  • 实体:资产的子项是其演绎版。
  • 属性.
  • 链接.

可用功能

Assets HTTP API包括以下功能:

注意

为了便于读取,以下示例忽略完整的cURL注释。 此记号与Resty相关,后者是cURL的脚本包装器。

检索列出的文件夹

检索现有文件夹及其子实体(子文件夹或资源)的Siren表示形式。

请求: GET /api/assets/myFolder.json

响应代码:响应代码为:

  • 200 — 好 — 成功。
  • 404 — 未找到 — 文件夹不存在或无法访问。
  • 500 — 内部服务器错误 — 如果发生其他问题。

响应:返回的实体类是资产或文件夹。包含实体的属性是每个实体的全部属性集的子集。 为了获得实体的完整表示形式,客户端应检索链接所指向的URL的内容,其中relself

创建文件夹

创建sling:OrderedFolder。 如果提供*而不是节点名,则servlet将参数名用作节点名。 该请求接受以下任一条件:

  • 新文件夹的Siren表示
  • 一组名称 — 值对,编码为application/www-form-urlencodedmultipart/ form- data。 这对于直接从HTML表单创建文件夹很有用。

此外,文件夹的属性可以指定为URL查询参数。

如果提供的路径的父节点不存在,则API调用将失败,并带有500响应代码。 如果文件夹存在,调用将返回响应代码409

参数: name 是文件夹名称。

请求

  • POST /api/assets/myFolder -H"Content-Type: application/json" -d '{"class":"assetFolder","properties":{"title":"My Folder"}}'
  • POST /api/assets/* -F"name=myfolder" -F"title=My Folder"

响应代码:响应代码为:

  • 201 — 创建 — 成功创建时。
  • 409 — 冲突 — 如果文件夹存在。
  • 412 - PRENIDETATION FAILED — 如果找不到或访问根集合。
  • 500 — 内部服务器错误 — 如果发生其他问题。

创建资产

有关如何创建资产的信息,请参阅资产上传。 不能使用HTTP API创建资源。

更新资产二进制

有关如何更新资产二进制文件的信息,请参阅资产上传。 无法使用HTTP API更新资源二进制。

更新资产的元数据

更新资产元数据属性。 如果更新dc:命名空间中的任何属性,API将更新jcr命名空间中的相同属性。 API不会同步两个命名空间下的属性。

请求: PUT /api/assets/myfolder/myAsset.png -H"Content-Type: application/json" -d '{"class":"asset", "properties":{"dc:title":"My Asset"}}'

响应代码:响应代码为:

  • 200 — 确定 — 如果资产已成功更新。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作。
  • 412 - PRENIDETATION FAILED — 如果找不到或访问根集合。
  • 500 — 内部服务器错误 — 如果发生其他问题。

创建资产演绎版

为资产创建演绎版。 如果未提供请求参数名称,则文件名将用作格式副本名称。

参数:这些参数 name 用于格式副本的名称, file 并用作文件引用。

请求

  • POST /api/assets/myfolder/myasset.png/renditions/web-rendition -H"Content-Type: image/png" --data-binary "@myRendition.png"
  • POST /api/assets/myfolder/myasset.png/renditions/* -F"name=web-rendition" -F"file=@myRendition.png"

响应代码

  • 201 — 已创建 — 如果已成功创建再现。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作。
  • 412 - PRENIDETATION FAILED — 如果找不到或访问根集合。
  • 500 — 内部服务器错误 — 如果发生其他问题。

更新资产演绎版

更新会分别将资产演绎版替换为新的二进制数据。

请求: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png

响应代码:响应代码为:

  • 200 — 确定 — 如果已成功更新演绎版。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作。
  • 412 - PRENIDETATION FAILED — 如果找不到或访问根集合。
  • 500 — 内部服务器错误 — 如果发生其他问题。

在资产上添加评论

参数:参数用 message 于注释的消息正文和 annotationData JSON格式的注释数据。

请求: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"

响应代码:响应代码为:

  • 201 — 已创建 — 如果注释已成功创建。
  • 404 — 未找到 — 如果在提供的URI中找不到或访问资产,请执行以下操作。
  • 412 - PRENIDETATION FAILED — 如果找不到或访问根集合。
  • 500 — 内部服务器错误 — 如果发生其他问题。

复制文件夹或资产

复制新目标路径中可用的文件夹或资产。

请求标头:参数有:

  • X-Destination - API解决方案作用域中要将资源复制到的新目标URI。
  • X-Depth - infinity0。使用0仅复制资源及其属性,而不复制其子项。
  • X-Overwrite — 用于 F 防止覆盖现有目标位置的资产。

请求: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"

响应代码:响应代码为:

  • 201 — 已创建 — 如果文件夹/资产已复制到非现有目标。
  • 204 — 无内容 — 如果文件夹/资产已复制到现有目标。
  • 412 - PRENIDETATION FAILED — 如果缺少请求标头。
  • 500 — 内部服务器错误 — 如果发生其他问题。

移动文件夹或资产

将给定路径上的文件夹或资产移动到新目标。

请求标头:参数有:

  • X-Destination - API解决方案作用域中要将资源复制到的新目标URI。
  • X-Depth - infinity0。使用0仅复制资源及其属性,而不复制其子项。
  • X-Overwrite — 使用强制 T 删除现有资源或防止覆 F 盖现有资源。

请求: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"

响应代码:响应代码为:

  • 201 — 已创建 — 如果文件夹/资产已复制到非现有目标。
  • 204 — 无内容 — 如果文件夹/资产已复制到现有目标。
  • 412 - PRENIDETATION FAILED — 如果缺少请求标头。
  • 500 — 内部服务器错误 — 如果发生其他问题。

删除文件夹、资产或演绎版

删除提供路径上的资源(-tree)。

请求

  • DELETE /api/assets/myFolder
  • DELETE /api/assets/myFolder/myAsset.png
  • DELETE /api/assets/myFolder/myAsset.png/renditions/original

响应代码:响应代码为:

  • 200 — 确定 — 如果文件夹已成功删除。
  • 412 - PRENIDETATION FAILED — 如果找不到或访问根集合。
  • 500 — 内部服务器错误 — 如果发生其他问题。

提示、最佳实践和限制

  • 在结束时间之后,资产及其演绎版无法通过Assets Web界面和HTTP API使用。 如果开机时间在将来,或结束时间在过去,则API返回404错误消息。

  • 资产HTTP API不会返回完整的元数据。 命名空间是硬编码的,只返回这些命名空间。 有关完整的元数据,请参阅资产路径/jcr_content/metadata.json

  • 使用API进行更新时,文件夹或资产的某些属性会映射到其他前缀。 将jcr:titlejcr:descriptionjcr:languagejcr前缀替换为dc前缀。 因此,在返回的JSON中,dc:titledc:description分别包含jcr:titlejcr:description的值。

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now