# API 명세 Base URL: `/api` ## 인증 ### POST /auth/login 로그인 (JWT 토큰 발급) ### GET /auth/me 현재 사용자 정보 (인증 필요) --- ## 멤버 ### GET /members 멤버 목록 조회 ### GET /members/:id 멤버 상세 조회 --- ## 앨범 ### GET /albums 앨범 목록 조회 ### GET /albums/:id 앨범 상세 조회 --- ## 일정 ### GET /schedules 일정 조회 **Query Parameters:** - `year`, `month` - 월별 조회 (필수, search 없을 때) - `search` - 검색어 (Meilisearch 사용) - `offset`, `limit` - 페이징 **월별 조회 응답:** ```json { "2026-01-18": { "categories": [ { "id": 2, "name": "유튜브", "color": "#ff0033", "count": 3 } ], "schedules": [ { "id": 123, "title": "...", "time": "19:00:00", "category": { "id": 2, "name": "유튜브", "color": "#ff0033" }, "source_name": "fromis_9" } ] } } ``` **검색 응답:** ```json { "schedules": [ { "id": 123, "title": "...", "datetime": "2026-01-18T19:00:00", "category": { "id": 2, "name": "유튜브", "color": "#ff0033" }, "source_name": "fromis_9", "members": ["송하영"], "_rankingScore": 0.95 } ], "total": 100, "offset": 0, "limit": 20, "hasMore": true } ``` ### GET /schedules/:id 일정 상세 조회 ### POST /schedules/sync-search Meilisearch 전체 동기화 (인증 필요) --- ## 추천 검색어 ### GET /schedules/suggestions 추천 검색어 조회 **Query Parameters:** - `q` - 검색어 (2자 이상) - `limit` - 결과 개수 (기본 10) **응답:** ```json { "suggestions": ["송하영", "송하영 직캠", "하영"] } ``` --- ## 봇 상태 ### GET /bots 봇 상태 조회 --- ## 헬스 체크 ### GET /health 서버 상태 확인 --- ## API 문서 ### GET /docs Scalar API Reference UI ### GET /docs/json OpenAPI JSON 스펙