Spring Boot : ServletUriComponentsBuilder 사용해보기

김아무개·2023년 10월 16일
1

Spring Boot 🍃

목록 보기
76/95
post-custom-banner

시나리오

유저 생성 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
profile
Hello velog! 
post-custom-banner

0개의 댓글