1.3 KiB
1.3 KiB
API 계약(1차)
공개 API
GET /api/public/route-by-host- Query:
host,path - Response:
status:ok | not_foundpage: block jsoncampaignId,pageId,routeId
- Query:
POST /api/public/lead- Body:
campaignId,pageId,routeId,payload,sourceMeta
- Body:
관리자 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: [...] }