memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

@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가 필요하다.

(본 글에서는 크롬 확잡앱중에서 가장 인기있는 웹앱을 추가하였다)

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

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!