ACDA (App Content Delivery API)

最終更新: 2026年6月22日

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* なら全体マップ - 上記を参照)。