스프링
[Spring] ResponseEntity 에 대하여
nan2
2022. 10. 10. 12:30
반응형
ResponseEntity란 간단하게 말하면, ResponseEntity를 사용하여 컨트롤러에서 Http 요청에 대한 응답 상태코드를 원하는 상태코드로 보낼 수 있다.
1. 원하는 Status 전달
사용방법
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user){
User savedUser = userDaoService.save(user);
return new ResponseEntity(HttpStatus.CREATED); //201 created 상태코드 반환
}
postman API 호출 결과(응답)

- Status: 201 Created 확인!
2. 원하는 Status + URI 전달
Http 요청에 대하여 사용자에게 어떠한 URI를 전달하고 싶은 경우 ServletUriComponentsBuilder 클래스 이용한 ResponseEntity
※ServletUriComponentsBuilder 사용법
[Spring] ServletUriComponentsBuilder 사용하여 사용자에게 URI 전달하기
사용자에게 특정한 URI를 전달할때 ServletUriComponentsBuilder 클래스를 사용한다. ServletUriComponentsBuilder 반환값은 URI로 받고, 컨트롤러에서 반환 타입은 ResponseEntity로 한다. @PostMapping("/users"..
dev-stack.tistory.com
사용방법
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user){
User savedUser = userDaoService.save(user);
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();
return ResponseEntity.created(location).build(); //201 Created 상태코드 반환
}
postman API 호출 결과(응답)

- Location(key)에 location 변수에 설정한 값이 들어간것을 확인!
- Status : 201 Created 확인!
3. 원하는 Status + Body 전달
Http 요청에 대하여 원하는 status 와 body에 데이터를 전달
사용방법
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user){
User savedUser = userDaoService.save(user);
return new ResponseEntity(savedUser, HttpStatus.CREATED);
}
postman API 호출 결과(응답)

- Body에 데이터 들어간것 확인!
4. 원하는 Status + URI + Body 전달
사용방법
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user){
User savedUser = userDaoService.save(user);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setLocation(ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(savedUser.getId()).toUri());
return new ResponseEntity(savedUser, httpHeaders, HttpStatus.CREATED);
}
postman API 호출 결과(응답)

- Location(key)에 location 변수에 설정한 값이 들어간것을 확인!
- Status : 201 Created 확인!

- Body에 데이터 들어간것 확인!
반응형