HTTP Status Code 제어에 대해서 배웠다.
GET과 Post 의 사용법이 다르기때문에 응답코드를 바꿔보면 어떨까, 싶다.
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
User savedUser = service.save(user);
// 상태코드 분리
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();
return ResponseEntity.created(location).build();
}
정상적으로 201 Created 라는 코드를 반환해주는 것을 확인할 수 있다.
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri(); // 이과정을 모두 uri 형태로 변경
return ResponseEntity.created(location).build();
이것이 상태코드와 관련된 코드인데 이것을 하나하나 해석해보자면
ServletUriComponentsBuilder
: 현재 요청의 URI 가져옴
fromCurrentRequest
: 현재 요청되어진 request 값을 사용한다는 뜻