이전 포스팅으로 GET HTTP Method에 대해 알아봤습니다.
오늘은 사용자 등록을 위한 POST HTTP Method에 대해 포스팅해보겠습니다.
POST HTTP Method
예제 코드로는 이전 포스팅에 구현한 사용자 목록 조회에 이어서 진행하겠습니다.
@PostMapping("/users") // 사용자 추가
public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
User savedUser = service.save(user);
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();
return ResponseEntity.created(location).build();
}
리소스 추가를 위해 @PostMapping 어노테이션을 활용해서 "/users" 엔드포인트로 매핑합니다. 이는 클라이언트가 새로운 사용자 정보를 추가하고자 할 때 해당 엔드포인트로 POST 요청을 보냅니다.
User 객체를 매개변수로 지정해 주고 @RequestBody 어노테이션을 통해 클라이언트에서 보낸 JSON 또는 XML 형태의 데이터가 User 객체로 자동으로 매핑되도록 설정됩니다.
@Valid 어노테이션은 유효성 검사(validation)를 수행하라는 의미이며, User 객체가 정의된 대로 유효한 데이터인지 확인합니다.
메서드 타입을 ResponseEntity으로 반환 지정을 했는데, 개념에 대해서는 이전 포스팅에 다뤘기 때문에 생략하겠습니다.
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();
위 코드는 새로 추가된 사용자의 정보를 가리키는 URI를 생성하고 'ServletUriComponentsBuilder'를 사용하여 현재 요청의 URI를 기반으로 새로운 URI를 생성하며, 새로운 사용자의 ID값을 포함한 URI를 만들어서 반환합니다.
위 코드를 실행했을 때 새로운 사용자 정보를 서버에 보내면 해당 정보를 데이터베이스에 저장하고, 새로 생성된 사용자를 나타내는 URI를 헤더에 포함하여 "201 Created" 상태 코드로 응답합니다.
구현 결과
결과는 PostMan을 활용해서 확인해 보겠습니다.
[ 사용자 전체 목록 조회 ]
[ 사용자 추가 POST ]
마치며
오늘은 RESTful API 기반 POST HTTP Method에 대해 알아봤습니다.
다음 포스팅에서 뵙겠습니다.
'[ JAVA ] > JAVA RESTful API' 카테고리의 다른 글
[ RESTful API ] SimpleBeanPropertyFilter (0) | 2023.08.04 |
---|---|
[ RESTful API ] JPA 연동 - 사용자 CRUD 기능 구현 (0) | 2023.08.02 |
[ RESTful API ] 사용자 수정/삭제를 위한 API 구현 - PUT/DELETE HTTP Method (0) | 2023.07.28 |
[ RESTful API ] 사용자 목록 조회를 위한 API 구현 - GET HTTP Method (0) | 2023.07.25 |
[ RESTful API ] EntityModel 개념 및 예제 (0) | 2023.07.24 |