← 전체 글로 돌아가기

API

API 응답이 이상할 때 처음 확인할 것들

API 작업에서 막힐 때는 status code, 응답 body, 요청 파라미터를 단계별로 확인하는 습관이 제일 빠르다.

API 디버깅할 때 내가 자주 하는 실수는 응답 데이터 구조부터 고쳐보려는 것이다. 근데 대부분의 경우 요청 단계에서 뭔가 틀려있었다.

먼저 status code 확인

API가 정상인지 아닌지는 status code로 대부분 판단할 수 있다. 응답 body를 보기 전에 항상 status code부터 확인한다.

curl -i 'https://example.com/api/items?page=1'

200이 나오면 기본 흐름은 맞다는 뜻이다. 401이나 403이 나오면 인증/권한 문제, 400이면 요청 데이터가 빠졌거나 형식이 틀렸다는 뜻이다.

응답 body와 정상 상태 비교

정상 응답이 뭔지 먼저 정해두면 디버깅 속도가 훨씬 빨라진다. 같은 엔드포인트에서 파라미터만 다르게 줬을 때 응답이 어떻게 바뀌는지 기록해두면, 나중에 문제가 생겼을 때 원인을 좁히기 쉬워진다.

# 정상: 페이지 1
curl -s 'https://example.com/api/items?page=1' | jq '.items | length'

# 비교: 페이지 2
curl -s 'https://example.com/api/items?page=2' | jq '.items | length'

로컬과 배포 환경 확인

로컬에서는 잘 작동하는데 배포되면 안 되는 경우가 많다. 이럴 땐 환경변수부터 확인한다. API 키, 데이터베이스 연결 URL, 타임존 설정 같은 것들이 다를 수 있다.

로그에 기록할 때 요청 파라미터와 응답 코드를 함께 남겨두면, 다음 번에 비슷한 문제가 나왔을 때 훨씬 빠르게 처리할 수 있다.