@ResponseBody @PostMapping("/request-body-json-v5") public HelloData requestBodyJsonV5(@RequestBody HelloData data) { log.info("username={}, age={}", data.getUsername(), data.getAge()); return data; }@ResponseBody응답의 경우에도 @ResponseBody를 사용하면 해당 객체를 HTTP 메시지 바디에 직접 넣어줄 수 있다. @RequsetBodyJSON 요청 -> HTTP 메시지 컨버터 -> 객체@ResponseBody객체 -> HTTP 메세지 컨버터 -> JSON
Spring
HTTP message body에 데이터를 직접 담아서 요청- HTTP API에서 주료 사용 JSON, XML, TEXT- 데이터 형식은 주로 JSON 사용- POST, PUT, PATCH 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 넘어오는 경우 @RequestParam, @ModelAttribute를 사용할 수 없다.(물론 HTML Form 형식으로 전달되는 경우는 요청 파라미터로 인정된다.) 먼저 가장 단순한 텍스트 메세지를 HTTP 메세지 바디에 담아서 전송하고, 읽어보자HTTP 메세지 바디의 데이터를 InputStream을 사용해서 직접 읽을 수 있다. requsetBodyString - v1 @PostMapping("/request-body-string-v1") ..
ModelAttribute실제 개발을 하면 요청 파라미터를 받아서 필요한 객체를 만들고 그 객체에 값을 넣어주어야 한다. 스프링은 자동화해주는 @ModelAttribute 기능을 제공한다. import lombok.Data;@Datapublic class HelloData { private String username; private int age;}롬복 @Data@Getter, @Setter, @ToString, @EqualAndHashCode, @RequiredArgsConstrutor를 자동으로 적용해준다. ModelAttribute - v1 @ResponseBody @RequestMapping("/model-attribute-v1") public String modelA..
RequestParam - v2스프링이 제공하는 @RequestParam을 사용하면 요청 파라미터를 매우 편리하게 사용할 수 있다. @ResponseBody @RequestMapping("/request-param-v2") public String requestParamV2(@RequestParam("username") String memberName, @RequestParam("age") int memberAge) { log.info("username={}, age={}", memberName, memberAge); return "ok"; } @ResponseBody : View 조회를 무시하고, H..
HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 3가지 방법을 사용한다.GET - 쿼리 파라미터/url**?username=hello&age=20**메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달예) 검색, 필터, 페이징등에서 많이 사용하는 방식POST - HTML Formcontent-type: application/x-www-form-urlencoded메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20예) 회원 가입, 상품 주문, HTML Form 사용HTTP message body에 데이터를 직접 담아서 요청HTTP API에서 주로 사용, JSON, XML, TEXT데이터 ..
HTTP 헤더 정보 조회 방법@Slf4j@RestControllerpublic class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest request, HttpServletResponse response, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @Requ..