SURF는 TAVE 동아리 운영을 위한 백엔드 API 서비스입니다. 이 문서는 SURF API의 사용 방법과 규격을 정리한 것입니다.
| 환경 | URL |
|---|---|
| Production | https://tavesurf.site |
| Local | http://localhost:8080 |
SURF API는 JWT(JSON Web Token) 기반 Bearer Token 인증을 사용합니다.
| Token | 유효 기간 | 전달 방식 | 설명 |
|---|---|---|---|
| Access Token | 1시간 | Authorization Header | API 요청 시 인증에 사용 |
| Refresh Token | 14일 | HttpOnly Cookie | Access Token 재발급에 사용 |
인증이 필요한 API 요청 시, HTTP 헤더에 다음과 같이 Access Token을 포함해야 합니다.
Authorization: Bearer {ACCESS_TOKEN}
Access Token이 만료된 경우, POST /auth/refresh 엔드포인트를 통해 Refresh Token 쿠키를 이용하여 새로운 Access Token을 발급받을 수 있습니다. Refresh Token Rotation(RTR) 방식이 적용되어, 재발급 시 Refresh Token도 함께 갱신됩니다.
SURF API는 역할 기반 접근 제어(RBAC)를 사용합니다.
| 역할 | 설명 |
|---|---|
ADMIN |
최고 관리자 (루트) |
PRESIDENT |
회장 |
MANAGER |
매니저 |
MEMBER |
일반 회원 |
| 경로 패턴 | 접근 가능 역할 |
|---|---|
/v1/user/** |
MEMBER, MANAGER, PRESIDENT, ADMIN |
/v1/admin/** |
MANAGER, PRESIDENT, ADMIN |
모든 API 응답은 아래의 공통 형식을 따릅니다.
{
"code": 200,
"message": "요청 성공 메시지",
"data": { ... }
}{
"code": 400,
"message": "에러 메시지",
"data": null
}{
"code": 400,
"message": "유효성 검증 실패 메시지",
"data": null
}| Status Code | 의미 | 설명 |
|---|---|---|
| 200 | OK | 요청 성공 |
| 201 | Created | 리소스 생성 성공 |
| 204 | No Content | 요청 성공 (응답 본문 없음) |
| 302 | Found | 리다이렉트 |
| 400 | Bad Request | 잘못된 요청 또는 유효성 검증 실패 |
| 401 | Unauthorized | 인증 실패 또는 토큰 만료 |
| 403 | Forbidden | 접근 권한 없음 |
| 404 | Not Found | 리소스를 찾을 수 없음 |
| 409 | Conflict | 리소스 충돌 (이미 존재하는 데이터 등) |
| 500 | Internal Server Error | 서버 내부 오류 |