的 Assets HTTP API允许对数字资产(包括对元数据、演绎版和注释)以及使用的结构化内容执行创建读取更新 — 删除(CRUD)操作 Experience Manager 内容片段。 在 /api/assets
和作为REST API实施。 包括 支持内容片段.
要访问API,请执行以下操作:
https://[hostname]:[port]/api.json
.https://[hostname]:[server]/api/assets.json
.API响应是某些MIME类型的JSON文件,也是所有MIME类型的响应代码。 JSON响应是可选的,并且可能不可用,例如PDF文件。 依赖响应代码进行进一步分析或操作。
通常,所有与上传或更新资产或二进制文件相关的API调用(如演绎版)均已在 Experience Manager as a Cloud Service 部署。 要上传二进制文件,请使用 直接二进制上传API 中。
A 内容片段 是一种特殊类型的资产。 它可用于访问结构化数据,如文本、数字、日期等。 由于 standard
资产(如图像或文档)中的其他一些规则适用于处理内容片段。
有关详细信息,请参阅 中的内容片段支持 Experience Manager Assets HTTP API.
的 Assets HTTP API公开了两个主要元素:文件夹和资产(对于标准资产)。 此外,它还针对描述内容片段中结构化内容的自定义数据模型公开了更多详细信息元素。 请参阅 内容片段数据模型 以了解更多信息。
文件夹与传统文件系统中的目录类似。 文件夹只能包含资产、文件夹或文件夹和资产。 文件夹具有以下组件:
实体:文件夹的实体是其子元素,子元素可以是文件夹和资产。
属性:
name
是文件夹的名称。 这与URL路径中不带扩展名的最后一个区段相同。title
是文件夹的可选标题,可以显示该标题而不是其名称。文件夹或资产的某些属性会映射到其他前缀。 的 jcr
前缀 jcr:title
, jcr:description
和 jcr:language
替换为 dc
前缀。 因此,在返回的JSON中, dc:title
和 dc:description
包含的值为 jcr:title
和 jcr:description
,分别为。
链接 文件夹会显示三个链接:
self
:链接到自身。parent
:链接到父文件夹。thumbnail
:(可选)链接到文件夹缩略图图像。在 Experience Manager 资产包含以下元素:
有关内容片段中元素的信息,请参阅 Experience Manager Assets HTTP API中的内容片段支持.
在 Experience Manager 文件夹具有以下组件:
的 Assets HTTP API包含以下功能:
为方便阅读,以下示例省略了完整的cURL注释。 符号与 Resty cURL的脚本包装器。
检索现有文件夹及其子实体(子文件夹或资产)的警报器表示形式。
请求: GET /api/assets/myFolder.json
响应代码:响应代码为:
响应:返回的实体类别是资产或文件夹。 包含实体的属性是每个实体的完整属性集的子集。 为了获得实体的完整表示形式,客户端应检索链接所指向的URL的内容,该链接包含 rel
of self
.
创建 sling
: OrderedFolder
在给定路径上。 如果 *
提供的不是节点名称,因此servlet使用参数名称作为节点名称。 请求接受以下任一条件:
application/www-form-urlencoded
或 multipart
/ 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"
响应代码:响应代码为:
请参阅 资产上传 ,以了解有关如何创建资产的信息。 您无法使用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"}}'
响应代码:响应代码为:
为资产创建演绎版。 如果未提供请求参数名称,则文件名将用作格式副本名称。
参数:参数包括 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"
响应代码
更新后,将分别使用新的二进制数据替换资产演绎版。
请求: PUT /api/assets/myfolder/myasset.png/renditions/myRendition.png -H"Content-Type: image/png" --data-binary @myRendition.png
响应代码:响应代码为:
参数:参数包括 message
的留言正文和 annotationData
,以获取JSON格式的注释数据。
请求: POST /api/assets/myfolder/myasset.png/comments/* -F"message=Hello World." -F"annotationData={}"
响应代码:响应代码为:
将提供路径上可用的文件夹或资产复制到新目标。
请求标头:参数包括:
X-Destination
- API解决方案范围中用于将资源复制到的新目标URI。X-Depth
- infinity
或 0
. 使用 0
仅复制资源及其属性,而不复制其子项。X-Overwrite
— 使用 F
以防止覆盖现有目标处的资产。请求: COPY /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-copy"
响应代码:响应代码为:
将给定路径上的文件夹或资产移动到新目标。
请求标头:参数包括:
X-Destination
- API解决方案范围中用于将资源复制到的新目标URI。X-Depth
- infinity
或 0
. 使用 0
仅复制资源及其属性,而不复制其子项。X-Overwrite
— 使用 T
强制删除现有资源或 F
以防止覆盖现有资源。请求: MOVE /api/assets/myFolder -H"X-Destination: /api/assets/myFolder-moved"
响应代码:响应代码为:
删除提供路径上的资源(-tree)。
请求
DELETE /api/assets/myFolder
DELETE /api/assets/myFolder/myAsset.png
DELETE /api/assets/myFolder/myAsset.png/renditions/original
响应代码:响应代码为:
在 关闭时间,则资产及其演绎版无法通过 Assets web界面和通过HTTP API。 如果 开始时间 是未来的,或 关闭时间 是过去。
资产HTTP API不会返回完整的元数据。 命名空间采用硬编码,只返回那些命名空间。 有关完整的元数据,请参阅资产路径 /jcr_content/metadata.json
.
使用API更新时,文件夹或资产的某些属性会映射到其他前缀。 的 jcr
前缀 jcr:title
, jcr:description
和 jcr:language
替换为 dc
前缀。 因此,在返回的JSON中, dc:title
和 dc:description
包含的值为 jcr:title
和 jcr:description
,分别为。