fromis_9/docs/api.md
caadiq f762302689 docs: 프로젝트 개발환경 문서 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 19:01:27 +09:00

132 lines
1.9 KiB
Markdown

# 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 스펙