Skip to content

API 명세서

Yeonu Kim edited this page May 30, 2026 · 1 revision

API 명세서

자세한 API 명세는 노션 페이지를 참고해주세요.

규칙

  • Base URL: https://{미정}/api (배포 이후 수정)
  • 인증이 필요한 API는 Authorization 헤더에 Access Token을 포함합니다.
  • 모든 응답은 JSON 형식입니다.

권한 레벨

표시 설명
비로그인 누구나 접근 가능
로그인 로그인한 모든 사용자
리뷰어 계정 리뷰어 권한 필요
사장 계정 사장님 권한 필요
작성자 해당 리소스의 작성자 본인만

엔드포인트

Auth

Method Path 설명 권한
POST /auth/user 회원가입 비로그인
POST /auth/user/session 로그인 비로그인
DELETE /auth/user/session 로그아웃 로그인
POST /auth/user/session/refresh Refresh 토큰 갱신 비로그인
POST /auth/user/email 메일 인증을 위한 이메일 발송 비로그인
POST /auth/user/email/verify 메일 인증 코드 확인 비로그인
GET /auth/user/email/duplicate 메일 중복 확인 비로그인
PATCH /auth/user/password 비밀번호 변경 로그인
POST /auth/user/password/reset 비밀번호 재설정 (새 비밀번호 전송) 비로그인

Store

Method Path 설명 권한
GET /stores 모든 상점 불러오기 (공개) 비로그인
POST /stores 사장님이 상점 등록하기 사장 계정
DELETE /stores/{storeId} 사장님이 상점 삭제하기 사장 계정, 작성자

Event

Method Path 설명 권한
GET /stores/{storeId}/events 상점별 이벤트 목록 불러오기 비로그인
POST /stores/{storeId}/events 사장님이 이벤트 생성하기 사장 계정, 작성자
DELETE /stores/{storeId}/events/{eventId} 사장님이 이벤트 삭제하기 사장 계정, 작성자
GET /events 사장님이 생성한 모든 이벤트 불러오기 사장 계정

Application

Method Path 설명 권한
GET /applications 리뷰어가 신청한 모든 이벤트 불러오기 리뷰어 계정
POST /events/{eventId}/applications 리뷰어가 이벤트 신청하기 리뷰어 계정
DELETE /applications/{applicationId} 리뷰어가 이벤트 신청 취소하기 리뷰어 계정, 작성자
POST /applications/{applicationId}/reviews 리뷰어가 리뷰 인증 제출하기 리뷰어 계정, 작성자
GET /events/{eventId}/applications 사장님이 이벤트별 신청 목록 조회하기 사장 계정, 작성자

Deposit

Method Path 설명 권한
POST /deposits 사장님이 예치금 충전하기 사장 계정

S3

Method Path 설명 권한
POST /s3/presigned-url 업로드를 위한 Presigned URL 생성하기 로그인

Exception Table

각 서비스별로 발생할 수 있는 에러에 대한 HTTP 상태 코드와 커스텀 에러 코드를 정의합니다.

Global

Exception Custom Code Error Code HTTP Status
Validation Exception GEN_004 VALIDATION_FAILED 400 Bad Request
Invalid Json Exception INVALID_JSON 400 Bad Request
InvalidRequestException INVALID_REQUEST 400 Bad Request
NotImplementedException NOT_IMPLEMENTED 501 Not Implemented

Auth

Exception Error Code HTTP Status
InvalidCredentialsException INVALID_CREDENTIALS 401 Unauthorized
InvalidAccessTokenException INVALID_ACCESS_TOKEN 401 Unauthorized
InvalidRefreshTokenException INVALID_REFRESH_TOKEN 401 Unauthorized
TokenMismatchException TOKEN_MISMATCH 401 Unauthorized
NotAuthorizedException NOT_AUTHORIZED 403 Forbidden
UserNotFoundException USER_NOT_FOUND 404 Not Found
UserInvalidRoleException USER_INVALID_ROLE 403 Forbidden
UserSuccessCodeException USER_SUCCESS_CODE_INVALID 400 Bad Request
OAuthFailedException OAUTH_FAILED 500 Internal Server Error
EmailSendFailureException EMAIL_SEND_FAILURE 500 Internal Server Error

Store / Event

Exception Error Code HTTP Status
StoreNotFoundException STORE_NOT_FOUND 404 Not Found
EventNotFoundException EVENT_NOT_FOUND 404 Not Found
EventAlreadyClosedException EVENT_ALREADY_CLOSED 409 Conflict
EventAlreadyAppliedException EVENT_ALREADY_APPLIED 409 Conflict

Application

Exception Error Code HTTP Status
ApplicationNotFoundException APPLICATION_NOT_FOUND 404 Not Found
ApplicationAlreadySubmittedException APPLICATION_ALREADY_SUBMITTED 409 Conflict
ApplicationUserForbiddenException APPLICATION_USER_FORBIDDEN 403 Forbidden
ReviewNotFoundException REVIEW_NOT_FOUND 404 Not Found

Deposit

Exception Error Code HTTP Status
DepositNotFoundException DEPOSIT_NOT_FOUND 404 Not Found

Clone this wiki locally