@RequesetBody, @ResponseBody

Hyun·2023년 6월 28일
0

Spring

목록 보기
12/38
post-thumbnail

HTTP의 Body에 내용을 직접 반환

  • viewResolver 대신에 httpMessageConverter가 동작한다. 즉 html 파일을 찾아서 브라우저로 전달해주는게 아니라 내용(문자열, 객체)자체를 http의 body에 전달하는 것

내용의 종류

  • 문자(문자열) - 문자(문자열) 그대로 http의 body에 전달함
  • 객체 - json 형식으로 변환하여 http의 body에 반환

문자열을 반환

문자열을 @ResponseBody 를 이용해 직접 반환

ex)

객체인 경우

객체를 @ResponseBody 를 이용해 json 형식으로 바꾼 후 직접 반환

ex)


개인적으로 공부한 내용

@RequestBody

데이터 전송: 클라이언트 -> 서버
@RequestBody 어노테이션을 컨트롤러 메서드의 파라미터로 설정하면 HttpMessageConverter 가 HTTP Request body 를 읽고 이를 역직렬화(deserialization)하여 자바 객체로 변환해준다. 이때 @RequestBody로 선언한 파라미터 타입과 클라이언트에서 보낸 데이터가 일치해야 한다.

정리(데이터 to 객체)
클라이언트가 보낸 데이터를 서버에서 특정 타입의 객체 형태로 받을 수 있다. 이때 클라이언트가 보내는 데이터는 서버에서 데이터를 받는 객체의 형태와 동일해야 한다.

@ResponseBody

데이터 전송: 서버 -> 클라이언트
@ResponseBody 어노테이션을 메서드 레벨이나 메서드의 리턴 타입으로 붙이면, 메서드가 리턴하는 값을 HttpMessageConverter를 통해 Response body 로 직렬화(serialization)하게 된다.

정리(객체 to JSON)
서버가 보낸 데이터를 클라이언트에서 JSON 형태로 받을 수 있다. 이때 이 JSON 데이터는 서버가 전송한 값의 형태를 나타낸다.

profile
better than yesterday

0개의 댓글