본문 바로가기

Spring 정리/Spring MVC 5

Restful API

728x90
반응형

기본 웹 애플리케이션은 응답 결과를 브라우저가 사용하는 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는 브라우저에게 정상적인 데이터를 보낸다고 알리기 위함이다.

728x90
반응형

'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