[ JAVA ]/JAVA RESTful API

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

환이s 2023. 7. 27. 21:11
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