[Spring] @RequestBody, @ResponseBody

노유성·2023년 7월 20일
0
post-thumbnail

@RequestBody

Spring에서는 @ReqeustBody 어노테이션을 명시함으로써 MessageConverter을 통한 데이터 변환 과정을 거친다.

예를 들어 client에서 server에 json 형식의 requestBody로 요청 데이터를 전송하면, java에서는 JSON형식의 data를 받기위해 역직렬화를 한다.
마찬가지로 다시 client로 보낼 떄도 객체를 JSON형식으로 직렬화를 한다.

@RequestBody 어노테이션은 HttpRequest의 본문 requestBody의 내용을 자바 객체로 매핑한다. 하지만 일반적인 GET 메소드는 request의 ody에 데이터가 전달되는 것이 아니므로 @PathVariable, @RequestParam 등의 어노테이션으로 데이터를 전달받아야한다.

// JSON 형식의 requestBody
{
    "id": "test0101",
    "email": "test0101@gmail.com"
}

// requestBody 요청을 매핑시킬 Java Object
public class Member {
    private String id;
    private String email;
}

@Response

@Response annotation은 java 객체를 response body의 내용으로 매핑하는 역할을 한다. 마찬가지로 return type에 맞는 MessageConverter을 통해 return 하는 객체를 해당 타입으로 변환한다. @RestController annotaion을 사용하면 @ResponseBOdy annotation을 명시하지 않아도 자동으로 매핑된다.

// responseBody로 매핑시킬 결과 Java Object
public class ResponseTransfer {
    private String text;
}

// Java Object가 매핑된 responseBody
{"text" : "Response OK"}
profile
풀스택개발자가되고싶습니다:)

2개의 댓글

comment-user-thumbnail
2023년 7월 20일

유익한 글 잘 봤습니다, 감사합니다.

1개의 답글