유저 생성 api 요청이 들어오면 유저를 생성하고 ,
요청 결과로 새로운 리소스가 생성되었기 때문에
201
상태 코드와 생성된 유저의 상세정보를 볼 수 있는 주소값
을 header에 담아 반환하기
위해 ServletUriComponentsBuilder 를 사용한다.
> ServletUriComponentsBuilder 자세한 정보 : pooney.tistory
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
User saved = service.save(user);
URI location = ServletUriComponentsBuilder
.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(saved.getId()) // 바로 위에 작성한 path 메서드의 인자로 작성된 문자열의 컬리 브라켓의 값으로 saved.getId() 값이 들어간다.
.toUri();
return ResponseEntity.created(location).build(); // 201 상태 코드(created)와 location 정보 반환
}
201 상태 코드와 Location 값이 생성된 것을 확인할 수 있다.
✏️ 201 상태 코드는 POST, PUT 요청에 대한 응답에 주로 사용된다.
클라이언트의 요청이 성공적으로 이뤄졌다는 의미까지는 200과 동일한데,
성공과 동시에 새로운 리소스가 생성되었다는 의미를 포함한다.
출처 : https://sanghaklee.tistory.com/61