CMA (Content Management API)
최종 수정: 2026년 7월 3일
CMA(Content Management API)는 Space의 콘텐츠와 설정을 만들고 읽고 수정하고 삭제하는 관리 API입니다. 콘텐츠 스튜디오에서 하는 작업(콘텐츠 작성, 발행, 멤버·역할 관리, 토큰 발급 등)을 코드에서 그대로 수행할 수 있습니다. 발행된 콘텐츠를 방문자에게 전달하는 읽기 전용 API는 CDA가 따로 담당합니다.
베이스 URL은 https://cma.weegloo.com/v1입니다. 호출 신원은 Weegloo User(Weegloo 플랫폼 계정)입니다. 서버·CI·스크립트에서는 Personal Access Token을, 브라우저 관리 UI에서는 콘텐츠 스튜디오 로그인 흐름이 발급한 토큰을 Bearer로 보냅니다. 제품에 가입한 회원(ServiceUser) 신원으로 동작하는 ACMA와는 토큰이 호환되지 않습니다.
공통 동작
아래는 CMA 리소스 전반에 적용됩니다. 각 리소스 페이지는 이 동작을 전제로 자기 고유 내용만 다룹니다.
- 전체 CRUD. 만들기(POST)·조회(GET)·수정(PUT/PATCH)·삭제(DELETE)를 모두 지원합니다. 읽기 전용인 CDA와 달리 쓰기와 발행이 여기에서 일어납니다.
- 수정에는 버전 헤더가 필요합니다. 리소스를 수정할 때
x-weegloo-version헤더에 현재 리소스의sys.version값을 실어야 합니다. 다른 사람이 먼저 고친 버전을 덮어쓰지 않도록 막는 장치입니다. - 부분 수정은
PATCH. 일부 필드만 바꿀 때는 RFC 6902 JSON Patch 본문으로PATCH를 보냅니다. 이때 요청Content-Type은application/json-patch+json입니다. 전체 본문으로 교체할 때는PUT을 씁니다. - 발행해야 전달됩니다. Content·Media·Content Type은 CMA에서 만들거나 고친 뒤 발행(Publish)해야 CDA로 전달됩니다. 발행 전 Draft나 미발행 변경분은 콘텐츠 스튜디오와 CMA에서는 보이지만 전달 경로에는 오르지 않습니다.
- 응답 미디어 타입. 응답
Content-Type은application/vnd.com.weegloo.v1+json;charset=UTF-8입니다. 요청에Accept: application/json을 보내면 협상에 실패할 수 있으니Accept를 생략하거나 같은 vendor 타입을 씁니다.
목록 조회 파라미터(limit·order·include·select·필터·커서 페이지네이션), sys 구조, 에러 코드 같은 공통 규약은 공통 쿼리 파라미터·시스템 속성 (sys)·규약·에러에서 다룹니다.
리소스
콘텐츠
- Content Type: 콘텐츠가 따르는 틀(스키마)을 정의합니다. 필드 구성·타입·다국어 여부·필수 여부·유효성 규칙을 정합니다.
- Content: Content Type으로 찍어낸 실제 데이터 한 건을 만들고 수정·발행합니다.
- Media: 올린 파일(이미지·문서 등)을 담는 리소스를 관리합니다.
- Tag: Content나 Media를 분류하는 짧은 라벨을 관리합니다.
- Locale: Space가 지원하는 언어 설정(
code·기본 여부·fallbackCode)을 관리합니다.
공간과 조직, 권한
- Organization: Space들을 담는 최상위 그릇입니다. 구독 플랜(
plan)과 멤버십이 이 수준에서 관리됩니다. - Organization Membership: 한 사람이 어떤 Organization에 어떤 권한으로 속해 있는지를 나타내며, 이메일 초대로 새 구성원을 들입니다.
- Space: 한 프로젝트의 콘텐츠가 모두 담기는 작업 공간입니다.
- Space Membership: 한 사용자가 어떤 Space에 어떤 SpaceRole들로 속해 있는지를 나타냅니다.
- SpaceRole: Space 구성원에게 주는 권한 묶음입니다. 리소스별 행동(읽기·생성·편집·삭제·발행)과 범위 필터를 담습니다.
토큰
- Personal Access Token: Weegloo User가 서버·CI·스크립트에서 자기 권한으로 CMA·Upload·CDA를 호출할 때 쓰는 장기 토큰입니다.
- Delivery Access Token: CDA에서 발행 콘텐츠를 읽을 때 쓰는 읽기용 토큰입니다. 발급 시 SpaceRole 하나에 바인딩해 읽기 범위를 정합니다.
제품 회원(ServiceUser)
- ServiceLogin: Space가 자기 제품의 end-user(ServiceUser)를 OAuth로 가입·로그인시키는 설정입니다.
- ServiceUserRole: 제품에 가입한 ServiceUser에게 주는 권한 묶음입니다. ACMA/ACDA에 적용됩니다.
- ServiceUser: ServiceLogin으로 가입한 제품 end-user, 곧 회원 계정입니다.
배포와 연동
- Web Hosting: 빌드한 정적 웹사이트를
{subdomain}.weegloo.app주소로 서비스하는 리소스입니다. - Webhook: Space에서 일이 일어났을 때(예: Content 생성·발행) 지정한 외부 URL로 HTTP 요청을 보내는 설정입니다.
