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