오류 코드

우대빵 API를 호출하면 HTTP 상태 코드(HTTP status code)로 API 처리 결과를 반환받습니다. 응답값은 HTTP 응답 본문(HTTP response body)으로 받습니다. 응답값의 형식은 오픈 API에 따라 JSON 형식이 될 수 있습니다. 따라서 API 응답 처리를 할 때는 먼저 HTTP 상태 코드를 통해 정상 처리 여부를 확인하고 응답 형식에 따라 결과를 파싱해 서비스에 사용합니다.

정상 작동 코드 및 오류 코드 형식

다음은 JSON 형식의 오류 메시지 예입니다.

{
      "message": "데이터가 정상적으로 조회되었습니다.",
      "data": Object,
      "status": OK,
}

정상 응답 코드

상태 코드
(status)
정상 코드 메시지
(message)
응답 데이터
(data)
OK 성공 Object
CREATED 데이터가 생성되었습니다. Object(Created Entity)
EMPTY 결과가 비었습니다. {}

주요 오류 코드

서버 상태 코드
(status)
에러 코드 메시지
(message)
INVALID_PARAMETER 파라미터가 누락되었거나 파라미터 타입이 다릅니다.
DATA_NOT_FOUND 존재하지 않는 데이터입니다.
AUTH_ERROR 아이디 또는 비밀번호가 다릅니다.
DUPLICATE 중복된 데이터가 입력되었습니다.
UNKNOWN_API 요청에 호출하는 API가 없습니다.
INTERNAL_SERVER_ERROR 서버 에러가 발생하였습니다.

토큰 오류 코드

결과 상태 코드
(status)
에러 코드 메시지
(message)
EXPIRED 토큰이 만료되었습니다.
FORBIDDEN 권한에 맞지 않는 요청입니다.

오류 메시지 형식

오류 메시지의 형식은 오류가 발생하는 위치와 관계없이 동일합니다.

HTTP 응답 코드

오류의 성격에 따라 400번대 혹은 500번대 오류 코드가 status 에 반환됩니다.

오류 메시지

오류 메시지는 JSON 형식으로 반환됩니다. 오류 메시지는 오류 구분코드 code 에 '1' 의 값이 들어갑니다. 오류가 발생하면 status 요소에는 HTTP 상태코드가 적용되지만, 더 상세한 구분을 위한 값으로 errorCode 요소와 오류 코드를 결합하여 사용합니다.

서버에서 에러가 발생한 사유에 대한 내용은 message 요소에 적용이 됩니다. 커스텀한 내용에 따라 data 요소에는 500 에러의 catch 에서 발생한 Exception.getMessage() 의 내용이 포함될 수 있습니다.

다음은 JSON 형식의 오류 메시지 예입니다.

{
      "message": "다중 로우가 감지되었습니다. 데이터베이스 체크가 필요합니다.",
      "data": "500 query did not return a unique result: 3; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 3",
      "status": INTERNAL_SERVER_ERROR,
}

토큰 동작 헤더

다음은 JSON 형식의 토큰 사용법 예입니다.

{
      "Authorization": "Bearer ${Access_Token}",
      "Refresh": "Bearer ${Refresh_Token}",
}

토큰 오류 코드

토큰의 오류 코드는 기존의 방식과는 다르게 code 요소와 data 요소로 구분됩니다. HTTP Status Code 는 '401'을 반환합니다.

HTTP Status Code 결과 상태 코드
(status)
코드 메시지
(message)
401 Unauthorized EXPIRED "토큰이 만료되었습니다."
HTTP Status Code 결과 상태 코드
(status)
코드 메시지
(message)
401 Unauthorized EXPIRED "토큰이 만료되었습니다."