본문 바로가기
Sesac 웹 풀스택[새싹X코딩온]/Spring

4. GET, POST 방식 및 DTO, VO 전송

by 이쟝 2023. 3. 16.

GET 방식

Get method의 URL을 받을 때는 Controller에서 @GetMapping(url)을 이용해야 한다. 

(get) ?key = value

?key=value 형태로 url이 넘어올 때 Controller에서 받는 방법 => @RequestParam 이용

  • 이 때, key라는 변수에 ?key=value로 넘어온 value 값이 들어간다.
  • @RequestParam에 required 값을 설정하면 없어도 실행된다. (기본값은 required="true", 만약 값이 안넘어올 수도 있다면 반드시 require="false" 설정을 해야 오류가 나지 않는다.)
@GetMapping("/get/response2")
public String getAPI2(@RequestParam(required = false) String name2, Model model) {
    model.addAttribute("name", name2);
    return "response";
}

(get) ~/{value} 

~/{value} 형태로 url이 넘어올 때 Controller에서 받는 방법 => @PathVariable 이용

  • 이 때, value라는 변수에 url로 넘어온 값이 담긴다.
@GetMapping ({"/get/response3/{name}/{age}", "/get/response3/{name}"})
public String getAPI3(@PathVariable String name, @PathVariable(value = "age", required = false) String abc, Model model) {
    model.addAttribute("name", name);
    model.addAttribute("age", abc);
    return "response";
}
  • age 위치에 넘어온 값이 abc 라는 변수에 담기게 된다.
  • mapping을 할 때 둘 중 한 값만 들어오면 객체에 묶어서 맵핑할 수 있다.

POST 방식

Post method의 URL을 받을 때는 Controller에서 @GetMapping(url)을 이용해야 한다. 

- 만약 API로만, 데이터만 전달하고 싶을 때(node에서의 res.send()와 동일)

 

  일반 폼 전송 일반 폼 전송(DTO) 일반 폼 전송(VO) axios 전송(DTO)  axios 전송(VO)
GET

@RequestParam : 가능 가능 NULL 일반 폼 전송 : 가능  일반 폼 전송 : 가능
@ParamVariable : 가능 GET DTO : 가능 GET VO : NULL
POST @RequestParam : 가능   - - 일반 폼 전송 : 불가 일반 폼 전송 : 불가
 
POST  @RequestBody와 함께 불가 불가 가능 가능
POST  @RequestBody 없이 가능 NULL NULL NULL
  • 일반 폼 전송(GET)은 RequestParam와 ParamVariabble / 일반 폼 전송(POST)은 RequestParam 가능 하다. 
  • DTO를 쓸 때 axios를 사용 한다면 @RequestBody를 써줘야 한다.