우당탕탕 개발일지

[스프링 입문 김영한 인프런] 섹션 2. 스프링 웹 개발 기초 - API 본문

웹개발

[스프링 입문 김영한 인프런] 섹션 2. 스프링 웹 개발 기초 - API

민아당긴아 2023. 10. 11. 21:38

API는 서버끼리 통신하는 방법!

@ResponseBody

  • 여기서 body는?
  • HTML에서의 body(x)
  • HTTP 통신 프로토콜의 헤더/바디 중 바디를 뜻함
  • 서버에서 클라이언트로 데이터를 전송할 때 사용하는 annotation
  • HTTP 응답의 본문(body)를 담아 보내는 역할
  • 사용 흐름

    웹 브라우저에서 hello-api 요청하면 내장 톰켓 서버에서 요청을 받아들이고, helloController를 통해 return hello(name:spring). 이 때 @ResponseBody를 통해 http 응답의 본문(body)를 담아 보낸다. 그러면 HttpMessageConverter를 통해 객체를 JSON 형태로 변환해서 HTTP 응답에 반환(객체이면 JsonConverter, 문자열이면 StringConverter가 작동)


  • public Hello: Hello라는 객체 생성
  • JSON: key-value 형식
  • Ctrl+enter단축키로 generate>getter and setter>Java bin jag이 생김, (property 접근방식)
  • HttpMessageConverter가 ViewResolver 대신에 객체를 JSON 형태로 변환(객체를 json으로 바꿔주는 유명한 라이브러리: Jackson -> MappingJackson2HttpMessageConverter으로 통해 기본 객체처리)
  • HTTP Accept 헤더에 포맷을 명시하면 해당된 포맷 컨버터가 선택된다..하지만 요즘에는 JSON만 쓴다