SOLUX-완숙이
@RequestParam과 @PathVariable, @RequestBody의 차이
leeeehhjj
2022. 1. 4. 13:42
이 어노테이션들은 controller에서 프론트로부터 파라미터를 전달받을 때 사용하는 어노테이션들이다.
1. @RequestParam
@GetMapping("club")
public ClubResponseDto findById(@RequestParam(value = "id") Long id) {
return clubService.findById(id);
}
api 요청 시에 URI에 http://localhost:8080/club?id=2 이렇게 queryString 방식으로 넣어주는 것이다.
@RequestParam(value = "id" , required=false) 이렇게 쓰면 id값을 넣어주지 않아도 오류가 발생하지 않는다.
2. @PathVariable
@GetMapping("/api/udong/club/{id}")
public ClubResponseDto findById(@PathVariable Long id) {
return clubService.findById(id);
}
이처럼 api 요청 시에 URI에 http://localhost:8080/api/udong/club/2 이런 식으로 값을 넣어 id 값 = 2 라는 정보를 전달해주는 것이다.
3. @RequestBody
@PostMapping("/api/udong/club")
public Long save(@RequestBody ClubSaveRequestDto requestDto) {
return clubService.save(requestDto);
}
예를들어 프론트에서
{
"id":2,
"name":"hello"
}
이런 json 형식의 데이터를 서버로 보내주면 이를 받아서 자바 객체 형태로 매핑해준다.