먼저 @PostMapping은 @RequestMapping(method = RequestMethod.POST ...)와 똑같다.
@RestController
@RequestMapping("api")
public class DemoController {
@RequestMapping(method = RequestMethod.POST, path = "/postMethod")
public String postMethod() {
return "Hello Spring";
}
@PostMapping("/postMethod2")
public String postMethod2() {
return "Hello Spring";
}
함께 받아야하는 데이터가 있다면 , @RequestBody를 이용한다.
예제를 위해 VO객체를 생성한다.
public class SearchParamVO {
private String username;
private String email;
private int page;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
@Override
public String toString() {
return "SearchParamVO{" + "username='" + username + '\'' + ", email='"
+ email + '\'' + ", page=" + page + '}';
@RestController
@RequestMapping("api")
public class DemoController {
@PostMapping("demoPage5")
public SearchParamVO postRequest(@RequestBody SearchParamVO searchParamVO){
return searchParamVO;
}
@RequestBody를 이용하여 HTTP Body에 담긴 데이터를 매핑하여 가지고 온다.
주의할 점으로 GET 통신에서는 @RequestParam을 사용하지만, POST 통신에서는 @RequestBody를 사용한다.
그리고, 받은 데이터를 그대로 return하여 응답을 보낸다.
저번 @GetMapping과 같이 @RestController 사용시 리턴값으로 VO객체를 그대로 주게되면 내부적으로 Jackson라이브러리에 의해 알아서 JSON 포맷으로 변환 된다.
POST 메소드는 HTTP body에 데이터를 넣어 보내야하기 때문에 테스트를 위해서 REST Client가 필요하다.
POST 통신으로 방금 만든 API를 데이터와 함께 호출해본다.
정상적으로 응답이 온 것을 확인할 수 있다.
'코드로 배우는 스프링부트 웹 프로젝트' 카테고리의 다른 글
Springboot) Springsecurity : AuthenticationManager , AuthenticationProvider , UserDetailsService (0) | 2022.01.21 |
---|---|
Springboot) RedirectAttributes, addFlashAttribute() (0) | 2022.01.17 |
Springboot) @RestController, @RequestMapping, @GetMapping 예제를 통한 학습 (0) | 2022.01.10 |
Springboot) JPA에서 M:N(다대다) 처리 (2) , @EntityGraph (0) | 2022.01.07 |
Springboot) JPA에서 M:N(다대다) 처리 (1) , N + 1 문제 (0) | 2022.01.03 |