ACDA (App Content Delivery API)
最后更新:2026年6月22日
ACDA(App Content Delivery API)是面向已注册产品的会员(即 ServiceUser)交付已发布 Content 和 Media 的只读 API。运营 Space 的一方将内容发布后,会员便通过 ACDA 读取这些已发布的资料。可以把它理解为 CDA 的 ServiceUser 版本:与 CDA 向公开访问者交付已发布内容的作用相同,只是以会员身份执行。ACDA 仅提供查询(GET)端点,创建、修改、删除由 ACMA 负责。
调用 ACDA 使用 ServiceLogin 签发的 Bearer 令牌。该令牌仅在 ACMA 和 ACDA 中有效,无法用于 CMA 或 CDA(令牌签发流程参见 Auth API)。
与 CDA 的区别
ACDA 的响应形态与 CDA 相同。它仅交付已发布资料的快照(sys 中不含 version、status、publish,只包含表示公开时点版本的 revision),并在查询时以 locale 指定接收的语言。与 CDA 的区别在于读取范围和身份这两点。
- 按会员区分的读取范围: CDA 中,使用同一个 DeliveryAccessToken 调用的任何人看到的都是同一个发布集合。ACDA 只返回调用方 ServiceUser 被允许访问的内容,而允许的范围由该会员的 ServiceUserRole 及分配情况决定。身份也不同:CDA 使用 DeliveryAccessToken 调用,ACDA 使用 ServiceLogin 签发的会员令牌调用。
通过 locale 查询参数指定以哪种语言接收的方式同样与 CDA 相同。给定形如 locale=ko-KR 的代码时,fields 会以该 locale 的单一值返回(若不存在且 Fallback 也无法触及,则为空或 null);省略时则以 Space 的默认 Locale 按同样方式返回;给定 locale=* 时,则原样返回包含所有 locale 值的映射。在以单一语言接收的前两种情况下,会附带一个告知实际所用 locale 的 x-weegloo-locale 头(locale=* 时不附带)。
资源结构
下面是 ACDA 交付演示 Space 中某个“商品” Content 的形态。这是以 locale=ko-KR 查询的结果,fields 中每个值都填入了 ko-KR 的单一值。
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7OGhwhlqvAvq",
"type": "Content",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
"createdAt": "2026-06-15T15:16:12.151Z",
"updatedAt": "2026-06-16T14:35:11.210Z",
"revision": 3
},
"fields": {
"productName": "스테인리스 텀블러 500ml",
"price": 18000,
"description": "이중 진공 단열로 보온·보냉이 오래갑니다. 500ml 대용량."
}
}主要键:
sys.id:Content 的唯一标识符。它会填入单条查询路径中的{contentId}。sys.type:资源种类,Content 始终为"Content"。sys.space:指向该 Content 所属 Space 的引用。sys.contentType:指向该 Content 所遵循的 Content Type 的引用。sys.revision:公开时点的版本。每次发布时,该时点的版本都会填入此处。ACDA 不包含管理用的version、status、publish,因此表示发布版本的值只有revision这一个。sys.createdBy、sys.updatedBy:仅当 Content Type 的publishWithAuthor开启时才会包含,分别指向作者和修改者。上面的示例中该选项处于关闭状态,因此这两个键被省略。fields:以{ apiName: value }的形态保存各字段的值。与 CMA、ACMA 的 locale 映射({ apiName: { locale: value } })不同,ACDA 只保存所查询locale的单一值。上面示例中,代表图片photo在该 locale 没有值,因此被省略。
Media 也以同样的发布交付形态返回,sys 中只包含 revision,不含 version、status、publish。Media 始终省略作者信息(createdBy、updatedBy)。Media 的 fields.file 也以所查询 locale 的单一对象返回。
API
三个端点都是查询(GET),并通过 locale 查询参数指定接收的语言(给定代码则为该 locale,省略则为默认 Locale,* 则为全部映射,详见上文)。
相关文档
- ACMA:会员创建和修改自己内容的管理 API。
- Auth API:签发 ACDA 调用令牌。
- ServiceUser 登录(概念):ServiceLogin、ServiceUserRole 与分配设置。
