CDA (Content Delivery API)

最后更新:2026年7月3日

CDA(Content Delivery API)是向访问者交付已发布的 ContentMedia 等内容的只读 API。运营 Space 的一方在内容工作室或 CMA 中创建并发布内容后,网站、应用便通过 CDA 读取该发布版并展示到界面上。创建、修改、发布由 CMA 负责,而非 CDA。

基础 URL 为 https://cda.weegloo.com/v1。认证通常使用 least-privilege 的 DeliveryAccessToken,即只持有所需范围、可安全用于公开浏览器交付的令牌。虽然也可以用 Weegloo User Bearer 令牌进行读取,但其权限对于浏览器分发过大,因此推荐使用 DeliveryAccessToken

通用行为

以下内容适用于 CDA 的所有资源。各资源页面以这些行为为前提,仅讲解各自的专有内容。

  • 只读。所有端点均为查询(GET)。写入与发布属于 CMA 的职责。

  • 仅显示已发布内容ContentMediaContent Type 仅交付已发布的快照。CMA 中的 Draft 或未发布的变更不会出现在 CDA 中。

  • 发布快照 sys。上述三种资源的 sys 不含用于管理的 versionstatuspublish,只有指向发布时刻版本的 revision。(Locale 不是发布对象,而是配置资源,因此照常保留 version。)

  • locale 选择语言ContentMedia 的查询通过 locale 查询参数决定以哪种语言返回。共有三种行为方式。

    • locale=ko-KR 那样给出代码时,会将 fields 以该 locale 的单一值返回(而非 locale 映射)。若没有值且 Fallback 也无法触达,则该字段为空或为 null
    • 省略时,以 Space默认 Locale 按相同方式返回。
    • 给出 locale=* 时,不选定单一语言,而是直接返回包含所有 locale 值的映射({ apiName: { locale: value } })。

    在以单一语言返回的前两种情况下,响应中会附带告知实际所用 locale 的 x-weegloo-locale 头(locale=* 时不附带)。(Content Type 是模板的 schema,不接受 localeSync 不选定语言,直接交付 locale 映射。)

  • 作者信息的暴露ContentcreatedByupdatedBy 仅在其 Content TypepublishWithAuthor 开启时才会交付。Media 始终省略作者信息。

资源

  • Content Type:查询已发布的 Content Type(内容的模板与字段定义)。
  • Content:以全量列表、单条、按 Content Type 等方式查询已发布的 Content
  • Media:查询已发布的 Media(文件资产)及其交付 URL。
  • Locale:查询 Space 所支持的语言配置(code、是否默认、fallbackCode)。属于配置资源,因此 sys 中带有 version
  • Sync:仅获取自上次同步以来发生变更和删除内容的增量同步。值按 locale 映射原样交付,不选定单一语言。
  • CMA Content Type:用于创建内容的模板及内容,并进行修改、发布的管理 API。
  • ACDA:以会员(ServiceUser)身份执行相同交付的版本。