ACDA (App Content Delivery API)
最終更新: 2026年6月22日
ACDA(App Content Delivery API)は、製品にサインアップした会員、すなわち ServiceUser に発行済みの Content と Media を配信する読み取り専用 API です。Space を運営する側がコンテンツを発行しておくと、会員は ACDA でその発行済み資料を読み取ります。CDA が公開訪問者に発行済みコンテンツを配信するのと同じ役割を、会員の身元で実行する ServiceUser 版だと考えてください。ACDA には参照(GET)エンドポイントのみがあり、作成・更新・削除は ACMA の担当です。
ACDA の呼び出しには ServiceLogin が発行した Bearer トークンを使います。このトークンは ACMA と ACDA でのみ有効で、CMA・CDA には使えません(トークン発行フローは Auth API を参照)。
CDA との違い
ACDA のレスポンス形式は CDA と同じです。発行済み資料のスナップショットのみを配信し(sys に version・status・publish を含めず、公開時点のバージョンである 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 は管理用のversion・status・publishを含めないため、発行バージョンを指す値はrevision1 つです。sys.createdBy・sys.updatedBy: Content Type のpublishWithAuthorがオンのときだけ含まれ、作成者・更新者を指します。上記の例はこのオプションがオフのため、2 つのキーが省略されています。fields: 各フィールドの値を{ apiName: value }形式で含みます。CMA・ACMA のロケールマップ({ apiName: { locale: value } })とは異なり、ACDA は参照したlocaleの値 1 つだけを含みます。上記の例で代表写真photoは該当ロケールに値がないため省略されています。
Media も同じ発行配信形式で返り、sys に revision のみを含め、version・status・publish は含めません。Media は作成者情報(createdBy・updatedBy)を常に省略します。Media の fields.file も参照したロケールの単一オブジェクトで返ります。
API
3 つのエンドポイントはすべて参照(GET)であり、locale クエリパラメータで受け取る言語を決めます(コードならそのロケール、省略すると既定の Locale、* なら全体マップ - 上記を参照)。
関連ドキュメント
- ACMA: 会員が自分のコンテンツを作成・修正する管理 API。
- Auth API: ACDA 呼び出しトークンの発行。
- ServiceUser ログイン (概念): ServiceLogin・ServiceUserRole・割り当ての設定。
