← 전체 글로 돌아가기

API

API 응답이 불안정할 때 날짜 필터부터 확인하자

API에서 날짜 기반 필터링을 사용할 때 응답 형식이 일관성 없게 나오는 문제를 다루는 방법입니다.

API의 날짜 필터가 제대로 작동하지 않으면, 요청마다 다른 응답이 나온다. 처음부터 완벽한 해결책을 찾으려다 보면 오히려 확인 시간이 길어진다.

핵심은 한 가지씩 차근차근 확인하는 것이다. 요청 파라미터부터 응답까지 전체 흐름을 추적해야 한다.

첫 번째 확인: 요청이 제대로 들어가는가

날짜 필터를 사용할 때는 요청 파라미터 형식이 중요하다. 서버에서 기대하는 날짜 형식(ISO 8601, Unix timestamp 등)과 클라이언트에서 보내는 형식이 다르면 아무리 해도 작동하지 않는다.

curl -i 'https://example.com/api/items?page=1&startDate=2024-01-01&endDate=2024-12-31'

API에 직접 curl로 요청을 보내보고 응답 코드와 body를 확인한다. 성공하면 200이 나오고, 파라미터 형식이 잘못되면 400이나 422가 나온다.

두 번째 확인: 응답 데이터가 예상과 일치하는가

요청이 성공했다고 해도 응답 데이터가 잘못 구성되어 있을 수 있다. 예를 들어 날짜가 문자열일 때도, 숫자일 때도 있을 수 있다.

같은 요청을 여러 번 보냈을 때 응답이 달라진다면, 시간대(timezone) 때문일 가능성이 높다. 또는 데이터베이스의 현재 상태에 따라 결과가 달라질 수 있다.

세 번째 확인: 인증이 제대로 되어 있는가

날짜 필터가 작동하지 않는 것처럼 보일 수 있지만, 사실은 인증 실패로 인해 다른 응답이 나오는 경우도 있다. 인증되지 않은 요청은 전혀 다른 데이터셋을 반환할 수 있다.

요청에 인증 토큰을 포함시켰는지, 토큰이 만료되지 않았는지 확인한다. 토큰이 있어도 유효성이 검증되지 않으면 기본 응답만 반환된다.

체크리스트

API 날짜 필터 문제를 다룰 때는 다음 순서로 확인한다:

  1. curl로 직접 요청을 보내본다
  2. 응답 코드(200, 400, 401 등)를 확인한다
  3. 응답 body의 형식과 데이터가 일치하는지 본다
  4. 같은 요청을 여러 번 보냈을 때 일관성이 있는지 확인한다
  5. 인증 토큰이 유효한지 검증한다

마지막에는 실제 화면이나 공개 URL까지 확인해야 작업이 끝난다. 날짜 필터가 정상적으로 작동하는 모습을 직접 눈으로 봐야 한다. 관련 기록을 짧게라도 남겨두면 다음 확인이 훨씬 빨라진다.