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

32 lines
1.3 KiB
Markdown

# 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: [...] }`