반응형
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에 데이터 들어간것 확인!
반응형
'스프링' 카테고리의 다른 글
[Spring] Spring Cloud Netflix Eureka 란? (0) | 2022.12.28 |
---|---|
[Spring] ServletUriComponentsBuilder 사용하여 사용자에게 URI 전달하기 (0) | 2022.10.10 |
@RequestBody 란 (0) | 2022.10.09 |
@PathVariable 사용법 (0) | 2022.10.05 |
ORM / JPA / Spring Data JPA 란? (0) | 2022.08.23 |