API 방식

Hyun·2023년 2월 22일
0

Spring

목록 보기
3/38

API 방식을 이용하면 viewResolver를 사용하지 않고, 대신에 http의 body부분에 해당 내용을 직접 반환한다. (html 전달 X)
*viewResolver를 사용하지 않기 위해 @ResponseBody를 추가해준다.

이때 반환한 내용이 문자인지, 객체인지에 따라 내용이 구분된다.

문자일때

문자 데이터 그대로 http 응답에 넘겨준다.


페이지 소스 코드를 보면 그냥 문자 그대로 전달된 것을 볼 수 있다.

객체일때

객체일때는 json 형태로 변환한 후 넘겨준다. 여기서는 hello 객체를 json으로 변환하는 것일 거다.


페이지 소스 코드를 보면 json 형태로 전달된 것을 볼 수 있다.

동작 원리

controller에서 @ResponseBody가 붙혀져 있는것을 확인하고 viewResolver가 아난 HttpMessageConverter 에게 처리를 맡긴다. 이때 문자인 경우와 객체인 경우 각각 다른 종류의 MessageConverter 가 동작한다.

문자면 그냥 내보내고, 객체면 json형태로 변환한 후 내보낸다. Jackson은 spring에서 default로 사용하는 객채->json형식 변환 라이브러리이다.

정리

  • 정적컨텐츠
    html 파일 그대로 내보낸다
  • mvc와 템플릿엔진
    M,V,C(MVC 패턴)의 뷰를 렌더링할때 템플릿 엔진이 적용되고, 렌더링된 html을 내보낸다.
  • API
    view없이 바로 객체를 json형태로 변환하여 http.response(http응답)에 넣어서 반환하는 방식

comment
동작 과정을 봤을때 정적컨텐츠, API도 MVC구조를 따르도록 설계된 것 같다.
입문강의라 대략적으로 설명해주신 것 같은데, 자세한건 나중 시리즈에서 학습하자.

profile
better than yesterday

0개의 댓글