Spring 요청 데이터 받기
- url 경로로 데이터 받기
- query_string (= query_parameter) 로 데이터 받기
- body 에 보낸 데이터 받기
클라이언트 쪽에서 스프링으로 데이터를 보내는 방법 3가지에 대해 소개한다.
00. TL; DR
@PathVariable | @RequestParam | @RequestBody |
---|---|---|
/user/{id} | /user?name=renine94 | /user |
{“name”: “renine94”, “age”: 30} |
01. URL 경로에서 데이터 받기
@PathVariable
- required = false
// https://localhost:8080/api/v1/user/777
@RestController
@RequestMapping("api/v1")
public class UserController {
@GetMapping("/user/{id}")
public String getUser(@PathVariable int id) {
return "hello world! userId: " + id
}
}
02. 쿼리파라미터로 데이터 받기
어느곳에서는 query_string 으로도 부르는 곳이 있다.
@RequestParam
- required = false
- ex) ?name=jaegu&age=30
// https://localhost:8080/api/v1/user?name=jaegu&age=30
@RestController
@RequestMapping("api/v1")
public class UserController {
@GetMapping("/user")
public String getUser(@RequestParam String name, @RequestParam int age) {
return "hello world! name: " + name + " age: " + age
}
}
03. 요청 Body에 데이터보낸 데이터 받기
@RequestBody
- 받는데이터가 복잡할때 사용된다. 예를 들어 오브젝트 자료형처럼 통쨰로 요청에 보내고 싶은 경우가 이에 해당한다.
- 보통 DTO 형태로 데이터를 받기 때문에 DTO 를 미리 만들어두어야 한다.
// https://localhost:8080/api/v1/user
{
"name": "renine94",
"age": 30
}
@RestController
@RequestMapping("api/v1")
public class UserController {
@GetMapping("/user")
public String getUser(@RequestBody RequestDTO requestDTO) {
String name = requestDTO.getName()
int age = requestDTO.getAge()
return "hello world! name: " + name + " age: " + age
}
}
댓글남기기