본문 바로가기
728x90
반응형

스프링187

[Spring] HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 HTTP API를 제공하는 경우에는 HTML이 아니라, 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. ※ 참고 HTML이나 뷰 템플릿을 사용해도 HTTP 응답 메시지 바디에 HTML 데이터가 담겨서 전달된다. 여기서 설명하는 내용은 정적 리소스나 뷰 템플릿을 거치지 않고, 직접 HTTP 응답 메시지를 전달하는 경우를 말한다 ResponseBodyController package hello.springmvc.basic.response; import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import .. 2023. 6. 13.
[Spring] HTTP 응답 - 정적 리소스, 뷰 템플릿 스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. 1) 정적 리소스 - 예) 웹 브로우저의 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다. 2) 뷰 템플릿 사용 - 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다. 3) HTTP 메시지 사용 - HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다 정적 리소스 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources src/main/resources 는 리소스를 보관하는 곳이고, 또 클래스패스의 시.. 2023. 6. 12.
[Spring] HTTP 요청 메시지 - JSON 이번에는 HTTP API에서 주로 사용하는 JSON 데이터 형식을 조회해본다. 기존 서블릿에서 사용했던 방식과 비슷하게 시작해본다. RequestBodyJsonController package hello.springmvc.basic.request; import com.fasterxml.jackson.databind.ObjectMapper; import hello.springmvc.basic.HelloData; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpEntity; import org.springframework.stereotype.Controller; import org.springframework.util.StreamU.. 2023. 6. 12.
[Spring] HTTP 요청 메시지 - 단순 텍스트 HTTP message body는 데이터를 직접 담아서 요청을 보내는 것이다. - HTTP API에서 주로 사용하고, JSON, XML, TEXT 등이 있다. - 데이터 형식은 주로 JSON을 사용한다. - POST, PUT, PATCH가 있다. 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 넘어오는 경우는 @RequestParam, @ModelAttribute를 사용할 수 없다. 물론 HTML Form 형식으로 전달되는 경우는 요청 파라미터로 인정 된다. 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고 읽어본다. HTTP 메시지 바디의 데이터를 InputStream 을 사용해서 직접 읽을 수 있다. RequestBodyStringController package.. 2023. 6. 12.
[Spring] HTTP 요청 파라미터 - @ModelAttribute @ResponseBody @RequestMapping("/request-param-v3") public String requestParamV3( @RequestParam String username, @RequestParam int age ) { log.info("username={}, age={}", username, age); HelloData data = new HelloData(); data.setUserName(username); data.setAge(age); return "ok"; } 실제 개발을 하면 요청 파라미터를 받아서 필요한 객체를 만들고 값을 넣어주어야 한다. 보통은 위 코드처럼 데이터를 넣어주는 작업을 해야한다. 스프링은 위와 같은 과정을 자동화해주는 @ModelAttribute .. 2023. 6. 12.
[Spring] HTTP 요청 파라미터 - @RequestParam requestParamV2 /** * @RequestParam 사용 * - 파라미터 이름으로 바인딩 * @ResponseBody 추가 * - View 조회를 무시하고, HTTP message body에 직접 해당 내용 입력 */ @ResponseBody // @RestController 랑 같은 효과를 봄 @RequestMapping("/request-param-v2") public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") int memberAge ) { log.info("username={}, age={}", memberName, memberAge); return "ok"; } @Req.. 2023. 6. 9.
728x90
반응형