반응형
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편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : HTTP, API 메시지 바디에 직접 입력해 HTTP 응답하기 (0) | 2022.01.28 |
---|---|
[Spring Boot] : 정적 리소스 및 뷰 템플릿 (0) | 2022.01.26 |
[Spring Boot] : HTTP 요청 메시지 - 단순 텍스트 관련 알아보기 (0) | 2022.01.26 |
[Spring Boot] : HTTP 요청 파라미터 - @ModelAttribute (0) | 2022.01.25 |
[Spring Boot] : HTTP 요청 파라미터 - @RequestParam (0) | 2022.01.25 |
댓글