카테고리 없음

ResponseEntity

Calice 2023. 3. 10. 10:48

ResponseEntity

- 스프링 프로젝트를 하다보면  controller 단에서 return 할 때 자주 쓰이는 걸 볼 수 있다.

- 크게 3가지로 나뉜다.    HttpStatus    /    HttpHeaders     /     HttpBody

- return 방식은 다양하니 그에 맞게 정보를 잘 담아서 프론트로 보내면 된다. 

- 프론트로 보내는 방법은 어떤 것이 적절할까 많은 고민이 있었는데 컨설턴트님한테 물어본 결과 회사마다 정해진 규칙에 따라 따르면 된다고 한다. 하지만 대부분 최소한의 정보만 주고 받으면 된다고. 진짜 필요한 핵심 기능만! 

 

return ResponseEntity.ok()
                .headers(headers)
                .body(responseService.getSingleResult(responseDto));
@RestController
@RequiredArgsConstructor
public class ResponseEntityController {

    private final ResponseEntityService service;

    @GetMapping("/user/{id}")
    public ResponseEntity<MyDto> findByid(@PathVariable Long id) {
        User user = service.getUser();
        MyDto dto = new MyDto();

        HttpHeaders header = new HttpHeaders();
        header.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));

        dto.setStatus(StatusEnum.OK);
        dto.setData(user);
        dto.setMessage("메세지메세지!");

        return new ResponseEntity<>(dto, header, HttpStatus.OK);
    }
}