Content Type
최종 수정: 2026년 7월 3일
CDA(Content Delivery API)는 발행된 리소스를 공개 방문자에게 전달하는 읽기 전용 API입니다. 이 페이지는 발행된 Content Type, 곧 Content가 따르는 틀(스키마)을 조회하는 방법을 다룹니다. 이 틀이 어떤 필드를 가지고 각 필드가 어떤 타입·다국어 여부·필수 여부·유효성 규칙을 갖는지를 CDA로 읽어 가면, 그 틀을 따르는 발행 Content의 모양을 미리 알 수 있습니다.
CDA에는 조회(GET) 엔드포인트만 있고, Content Type을 만들거나 고치고 발행하는 작업은 CMA Content Type이 담당합니다. 인증과 발행 전달 모델(발행 스냅샷·revision·발행된 것만 보임) 등 CDA 공통 동작은 CDA 개요를 참조하세요. Content Type은 틀의 스키마라 조회에 locale 파라미터를 받지 않습니다.
리소스 구조
다음은 데모 Space의 발행 Content Type "상품"을 CDA가 단일 조회로 전달하는 형태입니다. sys(시스템 속성)와 함께 name, displayField, publishWithAuthor, fields 같은 본문 속성을 가집니다.
{
"sys": {
"id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA",
"type": "ContentType",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdAt": "2026-06-14T17:04:46.846Z",
"updatedAt": "2026-06-17T03:13:49.943Z",
"revision": 7
},
"name": "상품",
"displayField": "productName",
"fields": [
{ "id": "5n06s7ocmwdi", "name": "상품명", "apiName": "productName", "type": "ShortText", "localized": true, "required": true, "validations": [], "disabled": false },
{ "id": "1gecyz8g4llwf", "name": "가격", "apiName": "price", "type": "Long", "localized": false, "required": false, "validations": [], "disabled": false },
{ "id": "3ow4popgz54zg", "name": "상세 설명", "apiName": "description", "type": "RichText", "localized": true, "required": false, "validations": [], "disabled": false },
{ "id": "2alxdptmdub1s", "name": "대표 사진", "apiName": "photo", "type": "Refer", "localized": false, "required": false, "validations": [], "disabled": false, "targetType": "Media" },
{
"id": "2a80lehazfx3t",
"name": "브랜드",
"apiName": "brand",
"type": "Refer",
"localized": false,
"required": false,
"validations": [
{ "referContentType": [ { "sys": { "id": "3trmXRM3RqbgSnifyg7OveRYWnJWEG", "type": "Refer", "targetType": "ContentType" } } ] }
],
"disabled": false,
"targetType": "Content"
}
],
"publishWithAuthor": false
}주요 키:
sys.id: Content Type의 고유 식별자입니다. 단일 조회 경로의{contentTypeId}에 들어갑니다.sys.revision: 공개된 시점의 버전입니다. CDA는 관리용version을 담지 않으므로, 발행 버전을 가리키는 값은revision하나입니다.name: Content Type의 이름입니다(예:상품).displayField: 콘텐츠 스튜디오 목록에서 각 Content를 대표해 보여 줄 필드의apiName입니다(예:productName).publishWithAuthor: Content 발행 시 작성자 정보를 함께 담을지 여부입니다(예시는false).fields: 이 틀이 정의하는 필드 목록입니다. 각 항목의 구조는 아래 필드에서 설명합니다.
시스템 속성 (sys)
발행 Content Type의 sys는 발행 스냅샷용 속성만 담습니다. space, createdBy, updatedBy는 Refer 모양({ "sys": { "id", "type": "Refer", "targetType" } })으로 들어갑니다.
| 속성 | 타입 | 설명 |
|---|---|---|
id | string | 리소스 고유 식별자. |
type | string | 리소스 종류. Content Type은 항상 "ContentType". |
space | Refer<Space> | 이 Content Type이 속한 Space. |
createdAt | string (date-time) | 생성 시각. |
updatedAt | string (date-time) | 마지막 수정 시각. |
revision | integer | 공개된 시점의 버전. 발행할 때마다 그 시점의 버전이 여기 담깁니다. |
createdBy | Refer<User> | 생성한 사용자. Content Type의 publishWithAuthor가 켜졌을 때만 포함됩니다. |
updatedBy | Refer<User> | 마지막으로 수정한 사용자. publishWithAuthor가 켜졌을 때만 포함됩니다. |
발행 스냅샷이므로 CMA의 sys에 있는 version·status·publish·archive는 담기지 않습니다. 발행 버전을 가리키는 값은 revision 하나뿐입니다.
필드
fields는 이 Content Type이 정의하는 필드의 목록입니다. 각 항목은 다음 구조(FieldDefinition)를 가집니다.
| 키 | 타입 | 설명 |
|---|---|---|
id | string | 필드의 고유 식별자. |
name | string | 콘텐츠 스튜디오에 표시되는 필드 이름(예: 상품명). |
apiName | string | API에서 이 필드를 가리키는 키. 발행 Content의 fields에서도 이 키로 값을 읽습니다. |
type | string (enum) | 필드의 타입. 아래 필드 종류 (type) 참조. |
localized | boolean | 다국어 값을 가질 수 있는지 여부. |
required | boolean | 필수 입력 여부. |
validations | array | 값에 적용된 유효성 규칙 목록. 규칙이 없으면 빈 배열 []. |
disabled | boolean | 비활성화 여부. |
targetType | string (enum) | type이 Refer일 때만. 참조 대상이 Content인지 Media인지. |
items | object | type이 Array일 때만. 배열 원소의 정의(Refer 원소 또는 ShortText 원소). |
필드 종류 (type)
type은 값이 저장·조회되는 방식을 결정합니다. 일부 타입은 검색 동작이 다릅니다.
type | 의미 | 비고 |
|---|---|---|
ShortText | 짧은 단일 줄 텍스트. | 정확 키워드 조회에 적합. |
LongText | 긴 본문 텍스트. | 전문(full-text) 유사도 검색을 지원. |
RichText | 서식이 있는 본문. | 검색 대상이 아니며 서식 표현용. |
Long | 정수. | 예: 가격 price. |
Number | 실수(소수 포함). | |
Boolean | 참/거짓. | |
Date | 날짜·시각. | |
Json | 임의 JSON 구조. | |
Location | 위치(좌표). | |
Refer | 다른 리소스를 가리키는 참조. | targetType으로 Content 또는 Media를 지정. |
Array | 여러 값을 담는 배열. | items로 원소 정의를 동반. |
"상품" 예시에서 상품명은 ShortText, 가격은 Long, 상세 설명은 RichText, 대표 사진은 Refer(targetType: Media), 브랜드는 Refer(targetType: Content)입니다. 브랜드 필드는 validations의 referContentType로 특정 Content Type(여기서는 "브랜드", sys.id가 3trmXRM3RqbgSnifyg7OveRYWnJWEG)의 Content만 참조하도록 제한합니다.
validations에 쓸 수 있는 유효성 규칙의 전체 키 카탈로그는 CMA Content Type에 정리되어 있습니다. CDA가 전달하는 발행 스냅샷도 같은 구조를 그대로 담습니다.
API
아래 두 엔드포인트의 기준 URL은 https://cda.weegloo.com/v1이며, Authorization 헤더에 CDA를 인증하는 Bearer 토큰이 필요합니다. Content Type은 틀(스키마)이라 언어를 고를 대상이 아니므로, Content 조회와 달리 locale 쿼리 파라미터를 받지 않습니다.
관련 문서
- CMA Content Type: Content Type을 만들고 수정하는 관리 API(필드 타입·유효성 검사 전체 명세 포함).
- CDA Content: 이 틀을 따르는 발행 Content를 전달받기.
- 상태와 발행 (개념): 발행·버전의 의미.
