@RestController 어노테이션
- Spring에서 Rest API/Web API를 개발하기 위해 사용하는 어노테이션
@Controller
와 @ResponseBody
를 포함한다.
- MessageConvertor가 @RestController에서 다음과 같은 중요한 역할을 수행한다.
- 외부에서 전달받은 JSON메서드를 내부에서 사용할 수 있는 객체로 변환
- Controller가 리턴한 객체를 클라이언트에게 JSON으로 변환해 전달
@EnableWebMvc
를 사용하면 기본으로 제공된다. 이는 Jackson 라이브러리를 추가할 경우 기본으로 설정되어 있다. 만약 Jackson 라이브러리를 추가해 주지 않은 경우 500 오류가 발생한다.
@ResponseBody
는 자바 객체를 HTTP 요청의 body 내용으로 매핑하는 역할을 수행하며, @RequestBody
는 HTTP 요청의 body 내용을 자바 객체로 매핑하는 역할을 수행한다.
@RestController
public class MemberRestController
{
@RequestMapping(value="api/item/new", method = RequestMethod.POST)
public Item item(@RequestBody ItemDto item) {
Item savedItem = itemService.join(item);
return savedItem;
}
}
- Body 부분의 ItemDto 데이터를 파라미터로 받기위해
@RequestBody
를 사용함.
@ResponseBody
는 @RestController
에 포함되어있어, savedItem이 Body에 맵핑되어 전달된다.