Content
最終更新: 2026年7月3日
CDA(Content Delivery API)は、公開済みのリソースを一般の訪問者に配信する読み取り専用 API です。このページでは、公開済みの Content、すなわち Content Type という枠組みに沿って作成された実際のデータ 1 件 1 件を取得する方法を扱います。CDA は公開された時点のスナップショットを配信するため、コンテンツスタジオでまだ公開していない作業中の版はここには現れません。
CDA には取得(GET)エンドポイントのみがあり、Content を作成・修正・公開する操作は CMA Content が担当します。認証や公開配信モデル(公開スナップショット、revision、公開されたものだけが見える、作成者の表示は publishWithAuthor に依存)など、CDA に共通する動作については CDA 概要を参照してください。locale で受け取る言語を決める方法は、後述の locale と fields で扱います。
リソース構造
以下は、デモ Space の公開 Content 1 件(「스테인리스 텀블러 500ml」商品)を CDA が locale=ko-KR で単一取得して配信する形です。sys(システム属性)とともに、この Content が従う Content Type のフィールド値が入った fields を持ちます。
{
"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:31:20.073Z",
"revision": 3
},
"fields": {
"price": 18000,
"description": "이중 진공 단열로 보온·보냉이 오래갑니다. 500ml 대용량.",
"photo": null,
"productName": "스테인리스 텀블러 500ml"
}
}主なキー:
sys.id: Content の一意な識別子です。単一取得パスの{contentId}に入ります。sys.contentType: この Content が従う Content Type(枠組み)を指すReferです。sys.idがその Content Type の識別子であり、どのフィールドを持つかは CDA Content Type で読み取れます。sys.revision: 公開された時点のバージョンです。CDA は管理用のversionを含めないため、公開バージョンを指す値はrevision一つだけです。fields: Content Type の各フィールドのapiNameをキーに持つオブジェクトです。値はリクエストしたlocaleの値一つです(ロケールマップではありません)。上記の例のphotoは、関連付けられた Media がないためnullです。
システム属性 (sys)
公開 Content の sys は、公開スナップショット用の属性のみを含みます。space・contentType・createdBy・updatedBy は Refer 形({ "sys": { "id", "type": "Refer", "targetType" } })で入ります。
| 属性 | 型 | 説明 |
|---|---|---|
id | string | リソースの一意な識別子。 |
type | string | リソースの種類。Content は常に "Content"。 |
space | Refer<Space> | この Content が属する Space。 |
contentType | Refer<ContentType> | この Content が従う Content Type(枠組み)。 |
createdAt | string (date-time) | 作成日時。 |
updatedAt | string (date-time) | 最終更新日時。 |
revision | integer | 公開された時点のバージョン。公開するたびに、その時点のバージョンがここに入ります。 |
createdBy | Refer<User> | 作成したユーザー。この Content が従う Content Type の publishWithAuthor が有効なときにのみ含まれます。 |
updatedBy | Refer<User> | 最後に修正したユーザー。publishWithAuthor が有効なときにのみ含まれます。 |
公開スナップショットであるため、CMA の sys にある version・status・publish・archive は含まれません。公開バージョンを指す値は revision 一つだけです。
locale と fields
locale クエリパラメータで、どの言語で受け取るかを決めます。3 通りの動作があります。
locale=ko-KRのようにコードを渡すと、fieldsをそのロケールの値一つで返します。CMA がfields.productName.ko-KRのようにロケールごとの値をすべて含むマップを返すのとは異なり、CDA はリクエストしたロケール一つの値を選んでfields.productNameに直接入れて返します。値がなく Fallback も届かない場合、そのフィールドはnullです(上記 リソース構造 のphotoがnullなのは、関連付けられた Media がないためです)。localeを省略すると、Space の既定の Locale で同じ方式で返します。locale=*を渡すと、一つの言語に絞らず、CMA のようにロケールごとの値をすべて含むマップ(fields.productName.ko-KR)をそのまま返します。
コードまたは省略で一つの言語を受け取るときは、レスポンスに、実際に使用したロケールを知らせる x-weegloo-locale ヘッダーが付きます(locale=* のときは付きません)。ロケール値の選択と Fallback のルールは、多言語 (概念) で扱います。
API
以下の 4 つのエンドポイントの基準 URL は https://cda.weegloo.com/v1 で、Authorization ヘッダーに CDA を認証する Bearer トークンが必要です。4 つのエンドポイントはすべて locale クエリパラメータを受け付けます(上記 locale と fields 参照)。前半 2 つのエンドポイントは Space 全体の公開 Content を対象とし、後半 2 つのエンドポイントは特定の Content Type に属する Content のみを対象とします。
前半 2 つのエンドポイント(Space 全体のすべての公開 Content リスト)を fields.* でフィルターまたはソートするときは、sys.contentType.sys.id={contentTypeId} で Content Type も合わせて指定する必要があります。contentType={contentTypeId} の形では代用できません。後半 2 つのエンドポイントは Content Type がパスに明示されているため、別途指定する必要はありません。
関連ドキュメント
- CDA Content Type: この Content が従う公開の枠組み。
- CDA Media: Content が参照する公開ファイル資産。
- CMA Content: Content を作成・修正する管理 API。
- 多言語 (概念): locale・fallback の動作。
