@RestController
@RequestMapping("/api") //http://localhost:8888/api
public class GetController { //rest 자원요청하면서 api역할
//url호출할 수 있는 기능
//http://localhost:8888/api/getmethod
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller 와 @RestController가 있다.
전통 @Controller 와 @RestController의 차이점
HTTP Response Boby가 생성되는 방식
@Controller: 주로 View를 반환하기 위해 사용한다,
-Client는 URL 형식으로 웹 서비스에 요청을 보낸다.
- Controller는 요청을 처리한 후에 ViewName을 반환한다.
-Controller가 반환한 view의 이름을 가지고 View 랜더링하기 위해서 ViewResolver가 사용되며,
ViewResolver 설정에 맞게 View를 찾아 렌더링 한다.
데이터 반환해야하는 경우?
Controller에서 데이터를 반환하기 위해 @ResponseBody 어노테이션을 활용한다.
이를 통해 Json형태로 데이터를 반환한다. //Json??
-Client는 URI 형식으로 웹 서비스에 요청을 보낸다. //url??
-Controller는 요청을 처리한후에 객체를 반환한다.
-반환되는 객체는 Json으로 Serialize되어 사용자에게 반환된다.
(??)
컨트롤러를 통해 객체를 반환할 때
일반적으로 ResponseEntity로 감싸서 반환한다.
객체를 반환하기 위해서 viewResolver대신에 HttpMessageConverter가 동작한다.
@RestController
-@Controller에 ResponseBody가 추가된것
-RestController의 주용도는 Json 형태로 객체 데이터를 반환하는것
최근 데이터를 응답으로 제공하는 REST API를 개발할 때 주로 사용, 객체를 ResponseEntity로 감싸서 반환한다.
@Controller + @ResponseBody = @RestController