-
Notifications
You must be signed in to change notification settings - Fork 1
API 명세서
Yeonu Kim edited this page May 30, 2026
·
1 revision
자세한 API 명세는 노션 페이지를 참고해주세요.
-
Base URL:
https://{미정}/api(배포 이후 수정) - 인증이 필요한 API는
Authorization헤더에 Access Token을 포함합니다. - 모든 응답은 JSON 형식입니다.
| 표시 | 설명 |
|---|---|
| 비로그인 | 누구나 접근 가능 |
| 로그인 | 로그인한 모든 사용자 |
| 리뷰어 계정 | 리뷰어 권한 필요 |
| 사장 계정 | 사장님 권한 필요 |
| 작성자 | 해당 리소스의 작성자 본인만 |
| 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 |
비밀번호 재설정 (새 비밀번호 전송) | 비로그인 |
| Method | Path | 설명 | 권한 |
|---|---|---|---|
GET |
/stores |
모든 상점 불러오기 (공개) | 비로그인 |
POST |
/stores |
사장님이 상점 등록하기 | 사장 계정 |
DELETE |
/stores/{storeId} |
사장님이 상점 삭제하기 | 사장 계정, 작성자 |
| Method | Path | 설명 | 권한 |
|---|---|---|---|
GET |
/stores/{storeId}/events |
상점별 이벤트 목록 불러오기 | 비로그인 |
POST |
/stores/{storeId}/events |
사장님이 이벤트 생성하기 | 사장 계정, 작성자 |
DELETE |
/stores/{storeId}/events/{eventId} |
사장님이 이벤트 삭제하기 | 사장 계정, 작성자 |
GET |
/events |
사장님이 생성한 모든 이벤트 불러오기 | 사장 계정 |
| Method | Path | 설명 | 권한 |
|---|---|---|---|
GET |
/applications |
리뷰어가 신청한 모든 이벤트 불러오기 | 리뷰어 계정 |
POST |
/events/{eventId}/applications |
리뷰어가 이벤트 신청하기 | 리뷰어 계정 |
DELETE |
/applications/{applicationId} |
리뷰어가 이벤트 신청 취소하기 | 리뷰어 계정, 작성자 |
POST |
/applications/{applicationId}/reviews |
리뷰어가 리뷰 인증 제출하기 | 리뷰어 계정, 작성자 |
GET |
/events/{eventId}/applications |
사장님이 이벤트별 신청 목록 조회하기 | 사장 계정, 작성자 |
| Method | Path | 설명 | 권한 |
|---|---|---|---|
POST |
/deposits |
사장님이 예치금 충전하기 | 사장 계정 |
| Method | Path | 설명 | 권한 |
|---|---|---|---|
POST |
/s3/presigned-url |
업로드를 위한 Presigned URL 생성하기 | 로그인 |
각 서비스별로 발생할 수 있는 에러에 대한 HTTP 상태 코드와 커스텀 에러 코드를 정의합니다.
| 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 |
| 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 |
| 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 |
| 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 |
| Exception | Error Code | HTTP Status |
|---|---|---|
| DepositNotFoundException | DEPOSIT_NOT_FOUND |
404 Not Found |