@PutMapping / @DeleteMapping 에서 @RequestParam 왜 안되는거여?
2022. 4. 6. 03:39ㆍBack-end/Spring
반응형
PutMapping / DeleteMapping : Body 읽기
- @PutMapping이나 @DeleteMapping을 통해 리소스 id를 @PathVariable로 받고 그 외의 변수들은 @RequestParam으로 받으려고 했을 때, query string이 아닌 body에 데이터를 넣고 전송하려하면 정상적으로 작동하지 않는다.
- body에 담긴 데이터가 POST Method에서는 @RequestParam에는 매핑이 되는데 왜 PUT, DELETE는 안되나 싶어서 찾아봤다.
- 이슈되는 부분은 spring이 아닌 tomcat에 있었다. tomcat에서 request의 body 내용을 HTTP POST Method 일 때만 파싱해오도록 설정되어 있기 때문이다.
- 이를 해결하기 위한 한가지 방법으로 HTTP DELETE / PUT Method 일 경우에도 request의 body 내용을 파싱하도록 설정하는 것이다.
- 그 설정은 tomcat의 server.xml에서 parseBodyMethods=“POST, DELETE” 이런 식으로 설정해 주는 것이다.
반응형
'Back-end > Spring' 카테고리의 다른 글
RESTful 이란 무엇인가요? (0) | 2022.04.13 |
---|---|
[Spring] boolean 타입 @Getter 에서 is()? (0) | 2022.04.06 |
하드코딩을 피하기! (상수 사용, StringBuilder 사용) (0) | 2022.03.30 |
[ubuntu] nginx let's encrypt로 https 적용시키기 (0) | 2022.03.30 |
AWS EC2 서버가 갑자기 꺼졌다! 혹은 느려졌다? (0) | 2022.03.29 |