기본 웹 애플리케이션은 응답 결과를 브라우저가 사용하는 html, css,javascript 로 생성하여 전달한다.
Restful API 서버는 응답결과를 "데이터만으로 구성"하여 클라이언트로 전달하는 서버이다.
Restful API 서버는 웹, 모바일 PC 등 다양한 플랫폼으로 "데이터"를 전달할 때 사용한다.
@RestController
@Controller는 return하는 값이 jsp를 지정하는 의미이지만 @RestController에서 return은 "그 값자체를 브라우저에 전달"하는 방식이다.
객체나 리스트를 json 데이터로 만들어 주는 것이 Jackson Databind
<RestTestController.java>
@RestController
public class RestTestController {
@GetMapping("/test2")
public ResponseEntity<ArrayList<DataBean>> test2() {
DataBean bean1 = new DataBean("문자열1",10,11.11,false);
DataBean bean2 = new DataBean("문자열2",10,11.11,false);
DataBean bean3 = new DataBean("문자열3",10,11.11,false);
ArrayList<DataBean> list = new ArrayList<DataBean>();
list.add(bean1);
list.add(bean2);
list.add(bean3);
ResponseEntity<ArrayList<DataBean>> entry = new ResponseEntity<ArrayList<DataBean>>(list,HttpStatus.OK);
return entry;
}
}
@Controller 대신 @RestController를 명시해주며, 한 class는 @Controller와 @RestController 2개를 가질 수 없기 때문에, 따로 클래스를 만들어야 한다. 참고로 String형으로 반환하지 않고 객체나, 리스트를 반환하므로 해당 자료형에 맞게 설정 해 준다.
ResponseEntity를 사용하여 객체를 생성한다. (list,HttpStatus.OK)에서 list는 json 의 형태를 정의한 것이고, HttpStatus.OK는 브라우저에게 정상적인 데이터를 보낸다고 알리기 위함이다.
반응형
'Spring > Spring MVC 5' 카테고리의 다른 글
DispatcherServlet & ContextLoaderListener (0) | 2022.07.12 |
---|---|
미니프로젝트 (0) | 2020.05.29 |
MyBatis (0) | 2020.05.27 |
예외처리 (0) | 2020.05.27 |
Interceptor (0) | 2020.05.27 |