Skip to main content

일반적인 응답 구조

성공적인 응답은 200번대 HTTP 코드와 함께, 서버가 요청을 어떻게 해석했는지를 나타내는 정보와 더불어 요청한 객체가 조회, 생성, 수정 또는 삭제된 결과를 담은 JSON 기반 페이로드로 표현됩니다. 요청이 성공한 경우, 응답의 일부로 요청 내용을 그대로 반영한 request 노드를 받게 됩니다. 예: GET accounts/abcdefg/campaigns?with_deleted=true
JSON 응답의 data 필드는 해당 리소스와 연관된 구체적인 객체를 포함합니다. 응답에 하나 이상의 결과가 포함될 수 있는 경우, data 노드는 JSON 배열 형식이 됩니다. 응답에서 오직 하나의 결과만 가능한 경우에는 JSON 해시(해시 맵) 형식으로 반환됩니다. 드문 경우이지만, 컬렉션이 포함되어야 할 응답에서 대신 해시 맵 하나만 포함된 응답을 볼 수도 있습니다. 이 경우, 해당 단일 해시 맵은 type 필드에 지정된 것과 동일한 type의 객체라고 간주하면 됩니다.

오류 응답 구조

오류 응답은 200대가 아닌 HTTP 상태 코드와 함께 반환됩니다. 일반적으로 JSON 응답이 함께 오지만, 일부 오류는 다른 종류의 본문으로 응답하기도 합니다. 응답 구조를 파싱할 수 없는 이러한 상황에서는 HTTP 상태 코드의 본래 의미를 우선적으로 고려해야 합니다. 예를 들어, 때때로 HTTP 404와 함께 HTML 응답을 볼 수 있습니다. 이 경우 해당 콘텐츠를 찾을 수 없다고 가정해도 안전합니다(HTTP 404는 “Not Found”를 의미합니다). 일반적인 오류 응답은 정상 응답과 유사한 구조를 따릅니다. 오류의 특성은 응답의 errors 노드에서 전달됩니다. errors/code 노드는 프로그램적으로 활용하여 어떤 방식으로 해결할지 결정하는 데 사용할 수 있는 CAPS_CASE 상수 오류 코드를 나타냅니다. errors/message 노드는 (일반적으로) 오류에 대한 사람이 읽을 수 있는 영어 설명을 나타냅니다. 오류에 대한 더 세부적인 정보를 나타내기 위해 추가 필드가 첨부될 수 있습니다.
위의 예시에서는 start_time 매개변수에 잘못된 값을 사용해 analytics 엔드포인트로 요청을 보낸 경우입니다. 잘못된 매개변수가 포함된 요청의 errors/code 값은 INVALID_PARAMETER입니다.