본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : HTTP 요청 메시지 JSON

by 오주현 2022. 1. 26.
반응형

HTTP API에서 주로 사용하는 JSON 데이터 형식을 조회한다.

@PostMapping("/request-body-json-v1")
    public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException {
        ServletInputStream inputStream = request.getInputStream();
        String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);

        log.info("messageBody={}", messageBody);
        HelloData helloData = objectMapper.readValue(messageBody, HelloData.class);
        log.info("username={}, age={}", helloData.getUsername(), helloData.getAge());

        response.getWriter().write("ok");
    }

HttpServletRequest를 통해 직접 HTTP 메시지 바디에서 데이터를 읽어와 문자로 바꿔준다. 문자로 바뀐 JSON 데이터를 Jackson 라이브러리인 objectMapper를 통해 자바 객체로 바꿔준다.

    @ResponseBody
    @PostMapping("/request-body-json-v5")
    public HelloData  requestBodyJsonV5(@RequestBody HelloData data) throws IOException {
        log.info("username={}, age={}", data.getUsername(), data.getAge());
        return data;
    }

@RequestBody를 사용해 해당 객체를 HTTP 메시지 바디에 직접 넣을 수 있다. 이 경우에도 HttpEntity를 사용해도 된다. @RequestBody를 통해 Json 요청이 오면 HTTP 메시지 컨버터를 통해 객체를 바꾸어주고 응답을 할 때도 객체를 HTTP 컨버터를 통해 Json 응답을 하게 된다.


스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부하였습니다.

반응형

댓글