포스트맨에서는 잘 돌아가는 API가 안드에서 계속 오류가 난다고 해서 원인을 찾아보았다.
아 니 포 스 트 맨 에 서 는 잘 되 는 데 웨 안 돼 😱
로그인 API 호출 시 필요한 값은 email(String) 1개이다.
controller에 requestbody 값도 별도의 DTO를 생성하지 않고 String 1개만 존재한다.
API가 제대로 전송됐고 서버 로직 상에 에러가 났다면 에러메시지를 같이 리턴시켜줬다. 반면에 API 요청 시 무언가 잘못되어서 요청 자체가 안 먹히면 개발 시 만든 에러메시지 없이 바로 400 에러를 뱉는다.
안드로이드에서 에러메시지가 안 보인다고 했고, 포스트맨에서는 API가 정상작동하는 것을 확인하고 안드 쪽에서 요청 시에 무언가 잘못 보내고 있어서 API 전송이 실패했다는 생각이 들었다.
기존에는 안드에서 API를 호출할 때 별도의 객체 생성 없이 String 값 1개로 요청을 보내고 있었다고 했고, 방식을 바꿔서 객체로 생성 후 email 변수를 만들고 보냈더니 성공했다!
안드 쪽 코드는 잘 모르지만 json 방식으로 API를 주고 받을 때는 안드로이드에서 별도의 json 객체 생성을 하고 보내야하나보다!
몇시간을 까먹었지만 그래도 서버 로직 상 오류는 아니라서 다행이라는 생각이 들었다^^^^^^^ 휴