에러 코드 레퍼런스
SweetBook API에서 반환하는 HTTP 상태 코드와 에러 응답 형식을 안내합니다.
HTTP 상태 코드
SweetBook API는 다음 HTTP 상태 코드를 사용합니다.
| 코드 | 설명 | 비고 |
|---|---|---|
200 | 성공 | 요청이 정상적으로 처리됨 |
201 | 리소스 생성 성공 | 새 리소스가 생성됨 (예: 주문, 도서) |
400 | 잘못된 요청 | 필드 검증 실패, 잘못된 파라미터 등 |
401 | 인증 실패 | API Key가 없거나 유효하지 않음 |
402 | 충전금 부족 | 잔액이 부족하여 주문 결제 불가 |
403 | 권한 없음 | 해당 리소스에 대한 접근 권한 없음 |
404 | 리소스 없음 | 요청한 리소스를 찾을 수 없음 |
409 | 충돌 | 중복 요청, 멱등성 키(Idempotency Key) 충돌 |
429 | Rate Limit 초과 | 요청 빈도 제한 초과 |
500 | 서버 에러 | 서버 내부 오류 (재시도 권장) |
에러 응답 형식
모든 에러 응답은 동일한 JSON 구조를 따릅니다. success 필드가 false이고,message에 에러 원인이 포함됩니다.
기본 에러 응답
json
{
"success": false,
"message": "Unauthorized. Invalid API key.",
"data": null
}필드 검증 에러 (400)
요청 본문의 필드 검증에 실패한 경우, fieldErrors 배열에 각 필드별 에러 정보가 포함됩니다.
json
{
"success": false,
"message": "Validation failed",
"fieldErrors": [
{
"field": "email",
"message": "Invalid email format"
},
{
"field": "recipientName",
"message": "recipientName is required"
}
]
}주요 에러 시나리오
인증 실패 (401)
API Key가 누락되었거나 유효하지 않은 경우 반환됩니다.
json
{
"success": false,
"message": "Unauthorized. Invalid API key.",
"data": null
}충전금 부족 (402)
주문 결제 시 충전금 잔액이 부족한 경우 반환됩니다.
json
{
"success": false,
"message": "Insufficient credits. Required: 12500, Available: 5000",
"data": null
}리소스 없음 (404)
요청한 리소스(도서, 주문 등)가 존재하지 않거나 접근할 수 없는 경우 반환됩니다.
json
{
"success": false,
"message": "Book not found",
"data": null
}멱등성 키 충돌 (409)
동일한 Idempotency-Key 헤더로 다른 내용의 요청을 보낸 경우 반환됩니다.
json
{
"success": false,
"message": "Idempotency key conflict. A different request was already processed with this key.",
"data": null
}Rate Limit 초과 (429)
요청 빈도 제한을 초과한 경우 반환됩니다. Retry-After 헤더를 확인하세요.
json
{
"success": false,
"message": "Rate limit exceeded. Please retry after 60 seconds.",
"data": null
}서버 에러 (500)
서버 내부 오류가 발생한 경우 반환됩니다. 잠시 후 재시도하거나 지속될 경우 지원팀에 문의하세요.
json
{
"success": false,
"message": "Internal server error",
"data": null
}에러 처리 권장사항
- 4xx 에러: 요청 내용을 수정한 후 재시도하세요. 동일한 요청을 반복해도 같은 에러가 발생합니다.
- 429 에러:
Retry-After헤더 값만큼 대기 후 재시도하세요. Exponential Backoff를 적용하는 것을 권장합니다. - 500 에러: 서버 측 문제이므로 잠시 후 재시도하세요. 지속될 경우 지원팀에 문의하세요.
- 필드 에러:
fieldErrors배열을 파싱하여 사용자에게 구체적인 수정 안내를 제공하세요.
관련 문서
- Rate Limiting — 요청 빈도 제한 안내
- 충전금 시스템 — 충전금 관리 및 잔액 조회
- 인증 가이드 — API Key 발급 및 인증