@PostMapping
POST 통신을 할때는 @RequestMapping(method=RequestMethod.POST, ...) 를 이용하거나 @PostMapping을 이용한다.
@RestController
@RequestMapping("api")
public class PostController {
@RequestMapping(method = RequestMethod.POST, path = "/postMethod")
public String postMethod() {
return "Hello Spring";
}
@PostMapping("/postMethod2")
public String postMethod2() {
return "Hello Spring";
}
}
@RequestBody
만약, 함께 받아야하는 데이터가 있다면, @RequestBody를 활용한다.
예제를 위해 VO 객체를 생성한다.
SearchVo.java
public class SearchVo {
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
+ '}';
}
}
PostController.java
@RestController
@RequestMapping("api")
public class PostController {
...
@PostMapping(value = "/search")
public SearchVo search(@RequestBody SearchVo searchVo) {
return searchVo;
}
}
@RequestBody를 이용하여 HTTP Body에 담긴 데이터를 매핑하여 가지고 온다.
- 주의할 점으로 GET 통신에서는
@RequestParam을 사용하지만, POST 통신에서는@RequestBody를 사용한다.
그리고, 받은 데이터를 그대로 return하여 응답을 보낸다.
- 참고. 내부적으로
Jackson라이브러리에 의해 알아서 JSON 포맷으로 변환 됨
REST Client 설치
POST 메소드는 HTTP body에 데이터를 넣어 보내야하기 때문에 테스트를 위해서 REST Client가 필요하다.
(본 글에서는 크롬 확잡앱중에서 가장 인기있는 웹앱을 추가하였다)

그리고, POST 통신으로 방금 만든 API를 데이터와 함께 호출해본다.


관련 글
2020/11/11 - [Spring/Spring Boot] - Spring Boot와 @RequestMapping, @GetMapping, @RequestParam 예제
Spring Boot와 @RequestMapping, @GetMapping, @RequestParam 예제
예제를 위해 간단한 Spring Boot 프로젝트를 생성한다. 2020/02/18 - [Spring/Spring Boot] - Spring Boot 프로젝트 생성하기 Spring Boot 프로젝트 생성하기 스프링 부트 프로젝트 생성 스프링 부트 프로젝트를..
memostack.tistory.com
'Backend > Spring Boot' 카테고리의 다른 글
| JPA 오류 해결 - Unable to locate Attribute with the the given name [Column] (0) | 2020.11.14 |
|---|---|
| Spring Boot 와 MySQL & JPA 연동하기 (Gradle 프로젝트) (1) | 2020.11.11 |
| Spring Boot와 @RequestMapping, @GetMapping, @RequestParam 예제 (1) | 2020.11.11 |
| Spring Boot 와 MySQL 연동하기 (Maven 프로젝트) (0) | 2020.10.31 |
| Spring Boot 에서 JPA 사용하기 (MySQL 사용) (0) | 2020.10.31 |