본문 바로가기
[ JAVA ]/JAVA RESTful API

[ RESTful API ] 사용자 등록을 위한 API 구현 - POST HTTP Method

by 환이s 2023. 7. 27.
728x90


이전 포스팅으로 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으로 반환 지정을 했는데, 개념에 대해서는 이전 포스팅에 다뤘기 때문에 생략하겠습니다.

 

[ Concept ] ResponseEntity 개념 및 장단점

ResponseEntity 란? ResponseEntity는 Spring Framework에서 제공하는 클래스로, HTTP 응답을 나타내는 엔티티이며, HTTP 응답의 상태 코드, 헤더, 본문 데이터 등을 포함할 수 있습니다. 일반적으로 Spring MVC 또는

drg2524.tistory.com

 

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에 대해 알아봤습니다.

다음 포스팅에서 뵙겠습니다. 

728x90