VPC 환경에서 이용 가능합니다.
Ncloud API 표준 규격을 적용한 API입니다.
Standardized API 호출 실패 시 제공되는 오류 코드와 메시지 정보, 응답 구조를 설명합니다.
- 오류 메시지는 기본적으로 영어로 제공하며, 일부 서비스는 한국어와 일본어 오류 메시지를 함께 제공합니다.
- 서비스별 오류 코드와 발생 조건은 각 서비스 API 가이드의 응답 상태 코드를 참조해 주십시오.
오류 코드
응답 상태 코드에 대한 설명은 다음과 같습니다. HTTP 상태 코드는 응답 헤더에 포함되며, 오류 코드는 응답 바디에 포함됩니다. 하나의 HTTP 상태 코드에 여러 오류 코드가 대응될 수 있으므로 오류를 처리할 때는 HTTP 상태 코드와 오류 코드를 함께 확인해 주십시오.
성공
호출이 성공한 경우의 상태 코드는 다음과 같습니다. 오류에 대한 조치가 필요 없습니다.
| HTTP 상태 코드 | 메시지 | 설명 |
|---|---|---|
200 OK |
성공 | 요청을 정상적으로 처리하고 응답 데이터를 반환한 경우 |
201 Created |
생성 성공 | 자원 생성 요청을 정상적으로 처리한 경우 |
202 Accepted |
요청 수락 | 요청을 수락하고 비동기로 처리를 진행하는 경우 |
204 No Content |
성공 | 요청을 정상적으로 처리하고 반환할 응답 데이터가 없는 경우 |
- 리소스 생성이나 대량 데이터 처리처럼 처리 시간이 긴 작업은 요청 즉시
202 Accepted로 응답하므로 이후 작업의 처리 상태를 조회하여 진행 상황과 결과를 확인해야 합니다. 작업의 처리 상태를 조회하는 방법은 각 서비스의 API 가이드를 참조해 주십시오. - 조회 대상이 존재하지 않는 경우, 오류로 처리하지 않기 때문에 다음과 같이 응답합니다.
- 단건 조회: 400 (조회 대상 없음)
- 목록 조회: 200 (빈 목록 반환)
클라이언트 오류
클라이언트 오류로 인해 호출이 실패한 경우의 상태 코드는 다음과 같습니다. 메시지를 확인하여 사용자 조치 후 다시 시도해 주십시오.
| HTTP 상태 코드 | 메시지 | 설명 |
|---|---|---|
400 BadRequest |
The request is malformed or contains an error such as an invalid parameter value or a missing required parameter. | 요청 형식이 올바르지 않거나 필수 파라미터 누락, 유효하지 않은 파라미터 값 등 요청 내용에 오류가 있는 경우 |
400 CannotDelete |
The delete operation could not be completed. | 기본 라우팅 테이블과 같이 정책상 삭제할 수 없는 자원에 대해 삭제를 요청한 경우 |
400 IdempotentParameterMismatch |
You have specified a client token for an operation using parameter values that differ from a previous request that used the same client token. | 동일한 클라이언트 토큰을 이전 요청과 다른 파라미터 값으로 다시 사용한 경우 |
400 IllegalArgument |
An argument in the request is not supported. | 요청에 지원하지 않는 인수가 포함된 경우 |
400 InvalidConfiguration |
Some or all of the configuration is incomplete, missing, or not valid. | 요청한 구성 정보의 일부 또는 전체가 누락되었거나 유효하지 않은 경우 |
400 InvalidNextToken |
You have provided an invalid pagination token in your request. | 목록 조회 요청에 유효하지 않은 페이지네이션 토큰이 포함된 경우 |
400 InvalidOperation |
The specified operation is invalid. | 요청한 작업이 유효하지 않거나 지원되지 않는 경우 |
400 InvalidParameter |
The specified parameter is invalid. | 요청 파라미터의 값이나 형식이 유효하지 않은 경우 |
400 InvalidState |
The specified state is not valid for the event source. | 요청한 작업을 수행할 수 없는 자원 상태이거나 유효하지 않은 상태값이 지정된 경우 |
400 InvalidTag |
The specified tag is invalid. | 태그의 키, 값 또는 형식이 유효하지 않은 경우 |
400 InvalidToken |
The token you provided is stale or isn't valid for the operation. | 요청에 사용한 토큰이 유효하지 않거나 해당 작업에 사용할 수 없는 경우 |
400 ResourceLimitExceeded |
The request exceeds the resource limit. | 자원에 설정된 허용 한도를 초과한 요청인 경우 |
400 TagLimitExceeded |
The maximum allowed number of tags was exceeded. | 자원에 등록할 수 있는 최대 태그 개수를 초과한 경우 |
401 ExpiredToken |
The token issued by the service has expired and is no longer valid. | 서비스에서 발급한 인증 토큰의 유효 기간이 만료된 경우 |
401 Unauthorized |
Invalid authentication credentials. | 인증 정보가 없거나 유효하지 않아 요청자를 인증할 수 없는 경우 |
403 AccessDenied |
The client is permanently forbidden from making the request. | 클라이언트에 해당 요청을 수행할 권한이 없어 접근이 거부된 경우 |
403 Forbidden |
You do not have sufficient permissions to perform this action. | 요청한 작업을 수행하는 데 필요한 권한이 부족한 경우 |
404 NotFound |
One or more of the resources in the request do not exist in the system. | 요청에 포함된 하나 이상의 자원을 찾을 수 없는 경우 |
404 ResourceNotFound |
The specified resource could not be found. | 요청에서 지정한 자원을 찾을 수 없는 경우 |
405 MethodNotAllowed |
The HTTP method used is not allowed for this resource. | 해당 자원에서 지원하지 않는 HTTP 메서드로 요청한 경우 |
406 NotAcceptable |
The server cannot produce a response matching the list of acceptable values defined in the request headers. | 요청 헤더의 응답 형식 조건을 서버가 충족할 수 없는 경우 |
408 RequestTimeout |
The request timed out. | 서버가 정해진 시간 내에 요청 처리를 완료하지 못한 경우 |
409 AlreadyExists |
A resource with the requested name already exists. | 동일한 이름 또는 식별 조건을 가진 자원이 이미 존재하는 경우 |
409 ConcurrentAccess |
Multiple operations can't be performed on the same tag simultaneously. Perform the operations sequentially. | 동일한 태그에 대해 여러 작업을 동시에 수행하여 충돌이 발생한 경우 |
409 Conflict |
The request could not be processed because of a conflict in the current status of the resource. | 자원의 현재 상태와 요청한 작업이 충돌하여 요청을 처리할 수 없는 경우 |
409 ResourceInUse |
The specified resource is in use. | 삭제 또는 변경 가능한 자원이 다른 자원이나 작업에서 사용 중인 경우 |
409 ResourceNotReady |
The resource is not ready. | 자원이 요청한 작업을 수행할 수 있는 준비 상태가 아닌 경우 |
412 PreconditionFailed |
The precondition in one or more of the request fields evaluated to false. | 요청에 지정한 하나 이상의 사전 조건을 충족하지 못한 경우 |
413 ContentTooLarge |
The request content exceeds the maximum allowed size. | 요청 본문의 크기가 허용된 최대 크기를 초과한 경우 |
415 UnsupportedMediaType |
The content type of the request body is not supported. | 요청 본문의 Content-Type을 서버에서 지원하지 않는 경우 |
424 DependencyFailed |
There was an issue with a dependency. Check the resource configurations and retry the request. | 요청 처리에 필요한 의존 자원의 구성 또는 상태 문제로 작업을 완료하지 못한 경우 |
429 RateLimitExceeded |
The request exceeded the rate limit. Retry after the specified time period. | 일정 시간 동안 허용된 API 요청 횟수를 초과한 경우 |
429 ResourceQuotaExceeded |
The allowed quota for the resource has been exceeded. | 특정 자원에 할당된 사용 한도를 초과한 경우 |
429 ServiceQuotaExceeded |
The request exceeds a service quota. | 서비스에 할당된 사용 한도를 초과한 경우 |
429 ThrottlingExceeded |
The request was denied due to request throttling. | 요청량 제어 정책에 따라 요청 처리가 제한된 경우 |
429 TooManyRequests |
The operation failed because it was called too frequently and exceeded a throttle limit. | 짧은 시간에 동일 작업을 과도하게 호출하여 요청 제한을 초과한 경우 |
서버 오류
서버 오류로 인해 호출이 실패한 경우의 상태 코드는 다음과 같습니다. 메시지를 확인하여 관리자 또는 네이버 클라우드 플랫폼에 문의해 주십시오.
| HTTP 상태 코드 | 메시지 | 설명 |
|---|---|---|
500 InternalServerError |
The request processing has failed because of an unknown error, exception, or failure. | 서버 내부의 알 수 없는 오류 또는 예외로 요청 처리에 실패한 경우 |
502 BadGateway |
There was an issue with a dependency due to a server issue. Retry your request. | 게이트웨이 또는 프록시가 내부 연동 서버에서 정상적인 응답을 받지 못한 경우 |
503 InsufficientCapacity |
There is insufficient capacity to perform the action. | 서버 또는 인프라의 가용 용량이 부족하여 요청한 작업을 수행할 수 없는 경우 |
503 ResourceUnavailable |
This resource is currently unavailable. | 지정한 자원을 현재 일시적으로 사용할 수 없는 경우 |
503 ServiceUnavailable |
The service is currently unavailable. | 서비스가 일시적으로 요청을 처리할 수 없는 경우 |
504 GatewayTimeout |
There was a temporary issue with the service. Retry your request. | 게이트웨이 또는 프록시가 내부 연동 서버로부터 정해진 시간 내에 응답을 받지 못한 경우 |
오류 응답 바디
호출이 실패한 경우의 응답 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
error |
Object | Required | 호출 오류 정보 |
error.errorCode |
String | Required | 오류 코드 |
error.message |
String | Required | 오류 메시지 |
error.detail |
String | Optional | 오류에 대한 상세 설명 |
error.fieldErrors |
Array | Optional | 값이 유효하지 않은 입력 항목 목록: fieldErrors |
fieldErrors
fieldErrors에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
field |
String | Required | 값이 유효하지 않은 필드의 이름 |
message |
String | Required | 해당 필드의 오류 메시지 |
2개 이상의 리소스를 한 번에 처리하는 API에서 일부 항목의 처리에 실패한 경우, 일반 오류를 나타내는 error 대신 최상위 failures에 실패한 항목의 오류 정보를 반환합니다. 단, 일괄 조회는 하나라도 조회할 수 없으면 요청 전체가 실패합니다.
failures의 상세 구조와 각 API에서 발생할 수 있는 오류는 해당 서비스의 API 가이드를 참조해 주십시오.
오류 응답 예시
호출이 실패한 경우의 예시는 다음과 같습니다.
-
기본 오류 응답
{ "error": { "errorCode": "NotFound", "message": "One or more of the resources in the request do not exist in the system." } } -
입력값이 유효하지 않은 필드가 2개 이상인 경우:
fieldErrors에 각 필드의 오류 정보 반환{ "error": { "errorCode": "InvalidParameter", "message": "The specified parameter is invalid.", "fieldErrors": [ { "field": "name", "message": "Name must be at least 3 characters long" }, { "field": "age", "message": "age is required" } ] } }