Files
landing-manager/docs/api-spec.md
2026-03-05 10:35:28 +09:00

1.3 KiB

API 계약(1차)

공개 API

  • GET /api/public/route-by-host
    • Query: host, path
    • Response:
      • status: ok | not_found
      • page: block json
      • campaignId, pageId, routeId
  • POST /api/public/lead
    • Body: campaignId, pageId, routeId, payload, sourceMeta

관리자 API

  • 인증: POST /api/admin/auth/login (현재는 역할 기반 데모 토큰 반환)
  • 캠페인: GET /api/admin/campaigns, POST /api/admin/campaigns, PUT /api/admin/campaigns/:id
  • 페이지: GET /api/admin/pages, GET /api/admin/pages/:id, POST /api/admin/pages, PUT /api/admin/pages/:id
  • 라우트: GET /api/admin/pages/:id/routes, POST /api/admin/pages/:id/routes
  • 조건: GET /api/admin/pages/:id/conditions, POST /api/admin/pages/:id/conditions, PATCH /api/admin/pages/:id/conditions/:conditionId, DELETE /api/admin/pages/:id/conditions/:conditionId
  • 리드: GET /api/admin/leads
  • 사용자: GET /api/admin/users, POST /api/admin/users, PUT /api/admin/users/:id/role

역할/권한(1차)

  • 헤더: x-user-role
  • 값: ADMIN, LEAD_MANAGER
  • ADMIN: 관리자 API 전체 사용
  • LEAD_MANAGER: 리드 조회(/api/admin/leads)만 사용

공통 에러

  • 401 { error: "unauthorized" }
  • 403 { error: "forbidden" }
  • 422 { error: "validation", details: [...] }