<목차>
1. Http Method POST
2. Post Controller
[Http Method POST]
클라이언트가 서버에 데이터를 전송하는 데 사용되는 주요 HTTP Method 로 폼 제출, 데이터 업로드, 새로운 리소스 생성 등 다양한 상황에서 사용된다.
- POST API 에서는 저장하려는 리소스나 값을 HTTP Body에 담아 서버로 전송한다.
- 요청 데이터는 주로 form-data, JSON, XML 등이 있다.
- POST Request는 상태를 유지하지 않으며, 서버는 요청을 받을 때마다 데이터를 처리한다.
- 새로운 리소스를 생성하는데 사용될 수 있으며, 요청으로 받은 데이터를 생성하는 위치는 서버가 결정한다.
[Post Controller]
- GET 컨트롤러에서 작성한 내용과 동일하게, @RequestMapping 어노테이션으로 컨트롤러를 작성할 수는 있으나,
@PostMapping 을 권장한다. - 아래에서, @PostMapping 컨트롤러에 대해 알아보자.
- @RequestBody 를 활용한 컨트롤러
- @RequestBody : HTTP Body 내용을 지정된 객체에 매핑하는 역할을 한다.
- 마찬가지로, 불특정 파라미터를 처리하기 위해 Map 을 사용할 수 있으며, 정해진 데이터를 받는 용도로 DTO를 사용할 수도 있다.
/**
* PostMapping
* 1) RequestBody 어노테이션을 활용한 POST 메서드
* Map 활용
* */
@PostMapping(value = "/member")
public String postMemberMap(@RequestBody Map<String, Object> postData) {
StringBuilder builder = new StringBuilder();
postData.entrySet().forEach(entry -> builder.append(entry.getKey()).append(" : ").append(entry.getValue()));
return builder.toString();
}
/**
* PostMapping
* 1) RequestBody 어노테이션을 활용한 POST 메서드
* Dto 활용
* */
@PostMapping(value = "/member2")
public String postMemberDto(@RequestBody MemberDto member) {
return member.toString();
}
- POST API는 시스템 입장에서 데이터의 생성을 담당하기에 중요한 부분을 차지하나, 컨트롤러 자체는 크게 복잡하지 않다.
- 또한, 데이터 생성에 대한 성공/실패 판단을 위해, 정해진 Response 형태의 '결과 코드', '결과 메시지' 를 구성하거나,
HTTP Status 코드로 판단하기도 한다.
[참고 도서]
<스프링 부트 핵심 가이드>
저자 : 장정우
출판사 : 위키북스
'Spring & Spring boot' 카테고리의 다른 글
[Spring Boot] Rest Controller - 5. DELETE (1) | 2024.07.24 |
---|---|
[Spring Boot] Rest Controller - 4. PUT (0) | 2024.07.24 |
[Spring Boot] Rest Controller - 2. Get (0) | 2024.07.24 |
[Spring Boot] Rest Controller - 1. REST (1) | 2024.07.23 |
스프링 부트(Springboot)란? (0) | 2024.07.23 |