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)

公開 Contentsys は、公開スナップショット用の属性のみを含みます。spacecontentTypecreatedByupdatedByRefer 形({ "sys": { "id", "type": "Refer", "targetType" } })で入ります。

属性説明
idstringリソースの一意な識別子。
typestringリソースの種類。Content は常に "Content"
spaceRefer<Space>この Content が属する Space
contentTypeRefer<ContentType>この Content が従う Content Type(枠組み)。
createdAtstring (date-time)作成日時。
updatedAtstring (date-time)最終更新日時。
revisioninteger公開された時点のバージョン。公開するたびに、その時点のバージョンがここに入ります。
createdByRefer<User>作成したユーザー。この Content が従う Content TypepublishWithAuthor が有効なときにのみ含まれます。
updatedByRefer<User>最後に修正したユーザー。publishWithAuthor が有効なときにのみ含まれます。

公開スナップショットであるため、CMA の sys にある versionstatuspublisharchive は含まれません。公開バージョンを指す値は revision 一つだけです。

locale と fields

locale クエリパラメータで、どの言語で受け取るかを決めます。3 通りの動作があります。

  • locale=ko-KR のようにコードを渡すと、fields をそのロケールの値一つで返します。CMA が fields.productName.ko-KR のようにロケールごとの値をすべて含むマップを返すのとは異なり、CDA はリクエストしたロケール一つの値を選んで fields.productName に直接入れて返します。値がなく Fallback も届かない場合、そのフィールドは null です(上記 リソース構造photonull なのは、関連付けられた 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 がパスに明示されているため、別途指定する必要はありません。