며칠 전, Rest API를 개발하고 Swagger에서 GET Method를 실행해보니 에러가 났다.
TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.
라는 에러는 처음봐서 구글링을 해본 결과 POST로 바꾸면 해결이 된다는 글을 보고 적용해봤더니 잘 작동이 됐다.
그러나 내가 쓰고 싶은 HTTP Method는 Get이었기 때문에 골머리를 앓던 중 친구의 말을 듣고 바로 해결이 되었다.
나는 GET Method 요청 시 Request Body를 이용해 데이터를 함께 보냈는데
1. 원래 GET은 method 요청 시 body를 원래 보낼 수 없었다.
2. 2014년부터 보낼 수 있게 되었지만 일부 클라이언트에서는 지원 되지 않을 수 있다.
지원되지 않는 일부 클라이언트 중에 Swagger가 포함되어 있었고 postman으로 테스트 해보니 에러없이 GET으로도 body를 보낼 수 있었다.
아래 링크를 보면 좀 더 자세히 나와있다.