CDA (Content Delivery API)
최종 수정: 2026년 7월 3일
CDA(Content Delivery API)는 발행된 Content·Media 등을 방문자에게 전달하는 읽기 전용 API입니다. Space를 운영하는 쪽이 콘텐츠 스튜디오나 CMA로 콘텐츠를 만들고 발행하면, 웹사이트·앱은 CDA로 그 발행본을 읽어 화면에 보여 줍니다. 만들기·수정·발행은 CDA가 아니라 CMA가 담당합니다.
베이스 URL은 https://cda.weegloo.com/v1입니다. 인증에는 보통 least-privilege DeliveryAccessToken을 씁니다. 공개 브라우저 전달에 안전하도록 필요한 범위만 가진 토큰입니다. Weegloo User Bearer 토큰으로도 읽을 수 있으나, 브라우저 배포에는 권한이 과하므로 DeliveryAccessToken을 권장합니다.
공통 동작
아래는 CDA 리소스 전반에 적용됩니다. 각 리소스 페이지는 이 동작을 전제로 자기 고유 내용만 다룹니다.
-
읽기 전용. 모든 엔드포인트가 조회(GET)입니다. 쓰기·발행은 CMA 소관입니다.
-
발행된 것만 보입니다. Content·Media·Content Type은 발행된 스냅샷만 전달됩니다. CMA의 Draft나 미발행 변경분은 CDA에 나타나지 않습니다.
-
발행 스냅샷
sys. 위 세 리소스의sys에는 관리용version·status·publish가 없고, 공개된 시점의 버전을 가리키는revision만 있습니다. (Locale은 발행 대상이 아니라 설정 리소스라version을 그대로 가집니다.) -
locale로 언어 선택. Content·Media 조회는locale쿼리 파라미터로 어떤 언어로 받을지 정합니다. 세 가지로 동작합니다.locale=ko-KR처럼 코드를 주면,fields를 그 로케일의 값 하나로 돌려줍니다(로케일 맵이 아님). 값이 없고 Fallback도 닿지 않으면 그 필드는 비거나null입니다.- 생략하면 Space의 기본 Locale로 같은 방식으로 돌려줍니다.
locale=*로 주면 한 언어로 고르지 않고, 모든 로케일 값을 담은 맵({ apiName: { locale: value } })을 그대로 돌려줍니다.
한 언어로 받는 앞 두 경우에는 응답에 실제로 쓴 로케일을 알려 주는
x-weegloo-locale헤더가 실립니다(locale=*일 때는 실리지 않습니다). (Content Type은 틀의 스키마라locale을 받지 않고, Sync는 언어를 고르지 않고 로케일 맵을 그대로 전달합니다.) -
작성자 노출. Content의
createdBy·updatedBy는 그 Content Type의publishWithAuthor가 켜졌을 때만 전달됩니다. Media는 작성자 정보를 항상 생략합니다.
리소스
- Content Type: 발행된 Content Type(콘텐츠의 틀과 필드 정의)을 조회합니다.
- Content: 발행된 Content를 전체 목록·단일·Content Type별로 조회합니다.
- Media: 발행된 Media(파일 자산)와 전달 URL을 조회합니다.
- Locale: Space가 지원하는 언어 설정(
code·기본 여부·fallbackCode)을 조회합니다. 설정 리소스라sys에version을 가집니다. - Sync: 마지막 동기화 이후 바뀌고 삭제된 것만 받아 가는 증분 동기화입니다. 값은 로케일 맵 그대로 전달하며 한 언어로 고르지 않습니다.
관련 문서
- CMA Content Type: 콘텐츠의 틀과 콘텐츠를 만들고 수정·발행하는 관리 API.
- ACDA: 같은 전달을 회원(ServiceUser) 신원으로 수행하는 버전.
