해결된 질문
작성
·
284
·
수정됨
답변 2
1
0
안녕하세요~~ ghdtldus03a 님!! 아주 좋은 질문이십니다~~ 👍
@RequestParam
은 GET API 혹은 DELETE API 에서 HTTP 쿼리를 객체가 아닌 각각의 파라미터로 받을 때만 사용할 수 있어서 그래요!!
예를 들어
@GetMapping("/xxx")
public void helloWorld(@RequestParam String name, @RequestParam int age) {
}
위의 코드는 String
과 int
를 파라미터 (매개변수) 그대로 받았죠! 때문에 @RequestParam
을 작성해주었어요!
하지만 만약 이 두 필드를
public class HelloWorldRequest {
private final String name;
private final int age;
// 필요한 생성자 및 getter
}
이렇게 객체로 묶어 주면
@GetMapping("/xxx")
public void helloWorld(HelloWorldRequest request) {
}
@RequestParam
을 사용하지 않아야 동작하게 됩니다!
전체적으로 아래와 같이 정리하시면 됩니다~~ 👍
GET / DELETE
HTTP 쿼리를 사용한다. (ex. /path?name=안녕?age=99
)
name과 age를 매개변수로 바로 받겠다 -> @RequestParam
name과 age를 객체로 묶어 받겠다 -> X
POST / PUT
HTTP Body를 사용한다. 무조건 @RequestBody
답변이 도움이 되었으면 좋겠습니다~ 감사합니다!!! 🙇