ACDA (App Content Delivery API)

ACDA(App Content Delivery API)は、製品にサインアップした会員、すなわち ServiceUser に発行済みの ContentMedia を配信する読み取り専用 API です。Space を運営する側がコンテンツを発行しておくと、会員は ACDA でその発行済み資料を読み取ります。CDA が公開訪問者に発行済みコンテンツを配信するのと同じ役割を、会員の身元で実行する ServiceUser 版だと考えてください。ACDA には参照(GET)エンドポイントのみがあり、作成・更新・削除は ACMA の担当です。

ACDA の呼び出しには ServiceLogin が発行した Bearer トークンを使います。このトークンは ACMA と ACDA でのみ有効で、CMA・CDA には使えません(トークン発行フローは Auth API を参照)。

CDA との違い

ACDA のレスポンス形式は CDA と同じです。発行済み資料のスナップショットのみを配信し(sysversionstatuspublish を含めず、公開時点のバージョンである revision のみを含めます)、参照時に locale で受け取る言語を決めます。CDA との違いは読み取り範囲と身元の 2 点です。

  • 会員ごとの読み取り範囲: CDA は 1 つの DeliveryAccessToken で呼び出す誰もが同じ発行集合を見ます。ACDA は呼び出した ServiceUser に許可されたものだけを返し、何が許可されるかはその会員の ServiceUserRole と割り当てによって決まります。身元も異なります。CDA は DeliveryAccessToken で、ACDA は ServiceLogin が発行した会員トークンで呼び出します。

locale クエリパラメータでどの言語で受け取るかを決める方式も CDA と同じです。locale=ko-KR のようにコードを渡すと fields をそのロケールの値 1 つで返し(なく Fallback も届かない場合は空または null)、省略すると Space の既定 Locale で同じ方式で返し、locale=* を渡すとすべてのロケール値を含むマップをそのまま返します。1 つの言語で受け取る前者 2 つの場合には、実際に使用したロケールを知らせる x-weegloo-locale ヘッダーが付きます(locale=* のときは付きません)。

リソース構造

以下は、デモ Space の「商品」Content 1 つを ACDA が配信する形式です。locale=ko-KR で参照した結果であり、fields の各値が ko-KR の値 1 つとして含まれています。

{
  "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 は管理用の versionstatuspublish を含めないため、発行バージョンを指す値は revision 1 つです。
  • sys.createdBysys.updatedBy: Content TypepublishWithAuthor がオンのときだけ含まれ、作成者・更新者を指します。上記の例はこのオプションがオフのため、2 つのキーが省略されています。
  • fields: 各フィールドの値を { apiName: value } 形式で含みます。CMA・ACMA のロケールマップ({ apiName: { locale: value } })とは異なり、ACDA は参照した locale の値 1 つだけを含みます。上記の例で代表写真 photo は該当ロケールに値がないため省略されています。

Media も同じ発行配信形式で返り、sysrevision のみを含め、versionstatuspublish は含めません。Media は作成者情報(createdByupdatedBy)を常に省略します。Mediafields.file も参照したロケールの単一オブジェクトで返ります。

API

3 つのエンドポイントはすべて参照(GET)であり、locale クエリパラメータで受け取る言語を決めます(コードならそのロケール、省略すると既定の Locale* なら全体マップ - 上記を参照)。