[Spring, SpringBoot] Controller에서 데이터 받는 방법 (@RequestBody, @RequestParam, @ParthVariable)프로그래밍/Java2024. 5. 27. 21:49
Table of Contents
728x90
어느날 문득 정리하고 데이터 받는 방법에 대해 정리하고 싶어졌다 !
서버에서는 요청한 데이터를 전달 받는 방법은 다양하다 ! MVC 패턴에서 주로 사용하는 어노테이션을 위주로 정리해 보려합니다 !
@RequestBody
@RequestBody는 클라이언트가 보내는 HTTP 요청 본문(JSON, XML 등)을 HttpMessageConverter를 통해 타입에 맞는 자바 객체로 변환해줍니다 !
@PostMapping("/test")
@ResponseBody // return data
public String test(@ReqeustBody <String, String> data) {
...
}
@RequestParam
@RequestParam은 클라이언트가 요청할 때 쿼리스트링을 통해 넘어오는 매개변수를 추출할 수 있습니다 !
required가 true로 설정되어있을 해당 데이터를 필수로 전달해줘야되며, 쿼리스트링에 id가 포함되어있지 않을 때 에러를 발생시길 수 있습니다 !
// /getList?id=chanhan 으로 요청
@GetMapping("/getList")
@ResponseBody
public String getList(@RequestParam(value="id", required=false) String id) {
...
}
아래와 같이 다중으로 전달되는 쿼리스트링을 매핑할 수도 있습니다.
// /getList?id=chanhan&id=cat&id=dog 으로 요청
@GetMapping("/getList")
@ResponseBody
public String getList(@RequestParam List<String> id) {
...
}
@PathVariable
@PathVariable은 클라이언트에서 요청한 URL을 매핑할 수 있습니다 !
// /getList/chanhan/30 요청 URI
@GetMapping("/getList/{id}/{num}")
@ResponseBody
public String getList(@PathVariable("id") String id,
@PathVariable("num") int num) {
...
}
'프로그래밍 > Java' 카테고리의 다른 글
[StringBoot] Azure 번역기 API 사용하기 (0) | 2024.06.12 |
---|---|
[Java, 자바] 추상 클래스(Abstract Class)와 인터페이스(Interface)는 언제 사용해야 될까? (0) | 2024.05.31 |
[Spring, Spring Boot] NoClassDefFoundError javax/xml/bind/DatatypeConverter (0) | 2024.04.17 |
[Java, 자바] static의 의미와 사용법 (0) | 2024.04.16 |
[Java, 자바] 싱글톤 패턴(Singleton Pattern)이란 ? (0) | 2024.04.15 |
@차나니 :: 차나니의 개발일지
개발의 모든 것 !
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!