ResponseEntity로 상태코드를 지정하기 위한 메서드이다.
status()created()말고도 HttpStatus 또는 statuscode를 직접 변수로 넣는 status()도 있다.

ok(), of()ok()는 상태코드 200으로 설정한다. 매개변수를 같이 주면 이는 body에 담기게 된다. of()는 변수로 body가 주어지고, 상태코드는 200으로 자동 설정된다. 만약 Optional.empty()가 변수로 주어지면 NOT FOUND로 상태가 설정된다.

created()created()는 상태코드 201로 설정된다. 그리고 변수로 URI를 주는데 이는 헤더의 Location에 들어가게 된다.

이외에도 몇 가지 상태코드 설정이 있다.

@Tag(name = "도서 정보")
@Operation(summary = "도서 정보 등록", description = "도서 정보를 등록한다.")
@PostMapping("")
private ResponseEntity<BookAddResponse> addBook(@RequestBody BookAddRequest bookAddRequest) {
log.info("addBook - Call");
BookAddResponse bookAddResponse = bookService.addBook(bookAddRequest);
return ResponseEntity
.created(URI.create("/api/v1/books/" + bookAddResponse.getBookId()))
.build();
}
@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();
}
