API 명세서 - f-lab-edu/book-challenge GitHub Wiki
사용자 관리
- 회원가입
POST /api/v1/users/register
- 로그인/로그아웃
POST /api/v1/auth/login
POST /api/v1/auth/logout
책 관리
- 새로운 책 정보 추가 (ISBN, 책이름, 페이지 수)
POST /api/v1/book
- 책 정보 수정
PUT /api/v1/book
- 책이름 또는 ISBN으로 책 정보 조회
GET /api/v1/book
기간 별 순위 체계
- 실시간 순위 조회
GET /api/v1/rankings/realtime
- 지속적으로 업데이트 되는 순위
- 최근 24시간 동안의 독서량을 기준으로 산정
- 5분마다 순위 갱신
- 주간 순위 조회
GET /api/v1/rankings/weekly
- 매주 월요일 0시에 시작, 일요일 23시 59분에 종료
- 매주 0점에서 시작
- 주간 독서량(페이지수)을 기준으로 순위 산정
- 월간 순위 조회
GET /api/v1/rankings/monthly
- 매월 1일 0시에 시작, 마지막 날 23시 59분에 종료
- 월간 총 독서량, 완독한 책의 수를 종합하여 순위 산정
- 점수 산정 방식
- 기본 점수
- 페이지 수 기반: 읽은 페이지 1페이지당 1점
- 독서 시간 기반: 독서 시간 1분당 1점
- 보너스 점수: 책 완독 시 + 50점 , 일일 목표 페이지 수 달성 시 +10점
독서 진행 상황 기록
- 새로운 독서 진행 상황 기록 시작
POST /api/v1/record/
("bookId", "startPage")
- 기존 독서 진행 상황 업데이트
PUT /api/v1/record/
("currentPage", "readingTimeMinutes", "isCompleted")
챌린지 관리
- 새로운 독서 챌린지 생성
POST /api/v1/challenges
("startDate","endDate", 1~3등 보상, "책 제목", "챌린지 내용", "참가자 수 제한")
- 모든 챌린지 목록 조회
GET /api/v1/challenges
- 챌린지에 참가자 추가
POST /api/challenges/{challengeId}/participants
- 챌린지에 참가한 참가자 목록 조회
GET /api/challenges/{challengeId}/participants