< 목차 >
0. 들어가며
1. 요청 URL 확인
2. API 명세서에 프로토콜이 http가 아니라 https로 작성돼 있어서 s를 추가해 요청
3. imageId 중복 요청 삭제
4. 해결 | Back-end Code가 POST가 아닌 PUT으로 구현돼있음을 확인 후, HTTP Method 수정해 해결
0. 들어가며
POST http://sandbox-momentia.vsfe.me:8080/v1/image/258 요청이 허용되지 않는 메소드라는 에러가 떴다.
서버의 API 문서대로 구현을 했는데도 해당 에러가 뜨길래 여러 가지 시도를 했다.
1. 요청 URL 확인
IMAGE.imageUploadComplete(imageId) 가 올바른 URL을 반환하는지 console.log() 로 확인했다.
console.log('요청 URL: ', IMAGE.imageUploadComplete(imageId));
“요청 URL: /image/269”로, 제대로 뜨는 걸 확인했다. 이건 답이 아니었다.
2. API 명세서에 프로토콜이 http가 아니라 https로 작성돼 있어서 s를 추가해 요청
Postman으로 테스트해보니 s를 붙이면 응답이 없다며 에러가 떴다. 이것도 답이 아니었다.
3. imageId 중복 요청 삭제
‘imageId 가 이미 URL 경로에 포함되어 있는데, Request Body로도 중복해서 넘겨줘야 하는 게 맞는 건가?’ 싶어서 Back-end에 연락을 남겨 놓고, 여러 시도를 해봤다.
3-1. :imageId 없애서 /image 경로로도 요청해봤다.
3-2. URL Parameter로 값을 전달할 경우, Body를 보내면 거부하는 경우가 있는 듯하여 Request Body에서 imageId 빼고 {} 빈 객체를 전달해봤다.
둘 다 답이 아니었다. 403 에러가 떴다.
4. 해결 | Back-end Code가 POST가 아닌 PUT으로 구현돼있음을 확인 후, HTTP Method 수정해 해결
모든 시도가 안 통해서 ‘이제 백엔드의 연락을 기다리는 것밖엔 답이 없나..’ 하던 찰나, ‘백엔드 코드를 한 번 봐보자!!!’ 하는 생각이 들었다.
이런, PUT으로 구현이 돼있다. API 명세서엔 POST로 요청해야 한다고 쓰여있었는데 이상하다.
PUT Method로 요청하도록 코드를 수정했다.
헉!!!!! 된다!!!!
요청 성공 시 뜨는 HTTP Status인 204가 잘 뜨는 것을 확인할 수 있었다. 감격 🥺
백엔드 팀원들에게도 해결했음을 전달했다. API 명세서를 잘못 작성하신 게 문제의 원인이었다.
'[Front-end] 개발자 공부' 카테고리의 다른 글
2024년 회고 | "요즘 뭐 하고 살아?" (방황과 새 시작) (3) | 2025.01.07 |
---|---|
Next.js에서 국문/영문 폰트 전역으로 설정하기 (+ next/font 사용) (2) | 2025.01.02 |
Storybook 설치 및 세팅 방법 (1) | 2025.01.01 |
아이콘 효율적으로 관리하기 (1) | 2025.01.01 |
디자인 시스템이 필요한 이유, 간략한 구축 방법 (1) | 2024.12.31 |