본문 바로가기

개발/Spring

스프링 REST API - @RestController

728x90
반응형
REST 란?

 

모바일 기기는 네트워크 전송량이 유선 기기보다 떨어지므로 PC 에서 동작하는 것과는 달리 화면은 그대로 유지하면서 필요한 데이터만 전송 받아 빠르게 결과를 표시합니다.(Ajax 를 이용하는 것이 대표적인 경우)   
스프링에서도 모바일 기기와 연동하는 경우가 많아지면서 데이터만 전송하는 기능을 지원하게 되었고 그 결과 REST 라는 방식이 그 대안으로 등장하여 사용되고 있습니다.

REST 란 representational State Transfer 의 약자로, 하나의 URI 가 고유한 리소스를 처리하는 공통 방식입니다.
REST 방식으로 제공되는 API 를 REST API(RESTful API)라고 하며 이는 트위터와 같은 Open API 에서 많이 사용하고 있습니다.

 

 

 

@RestController

 

[ 컬렉션 객체 전달하기 ]

 

...
@RestController
@RequestMapping("/test/*")
public class TestController {
	static Logger logger = LoggerFactory.getLogger(TestController.class);

	// membersList 요청 매핑
	@RequestMapping("/membersList")
	public List<MemberVO> listMembers() {
		// MemberVO 객체를 저장할 ArrayList 객체 생성
		List<MemberVO> list = new ArrayList<MemberVO>();
        
		// MemberVO 객체를 10개 생성해서 ArrayList 에 저장
		for (int i = 0; i < 10; i++) {
			MemberVO vo = new MemberVO();
			vo.setId("kim" + i);
			vo.setPwd("1212" + i);
			vo.setName("김철수" + i);
			vo.setEmail("kim" + i + "@gmail.com");
			list.add(vo);
		}
		// 데이터가 저장된 ArrayList 를 브라우저로 전송
		return list;
	}
...

 

 

[ Map 전달하기 ]

 

...
@RestController
@RequestMapping("/test/*")
public class TestController {
	static Logger logger = LoggerFactory.getLogger(TestController.class);
    
    @RequestMapping("/membersMap")
	public Map<Integer, MemberVO> membersMap() {
    	// MemberVo 객체를 전달할 HashMap 생성
		Map<Integer, MemberVO> map = new HashMap<Integer, MemberVO>();
		// HashMap 에 MemberVO 객체 저장
		for (int i = 0; i < 10; i++) {
			MemberVO vo = new MemberVO();
			vo.setId("kim" + i);
			vo.setPwd("1212" + i);
			vo.setName("김철수" + i);
			vo.setEmail("kim" + i + "@gmail.com");
			map.put(i, vo);
		}
		// HashMap 을 브라우저로 전송
		return map;
	}
...

 

템플릿 HTML 등을 사용해서 전송된 데이터를 알맞은 위치에 사용할 수 있습니다.

 

 

여기까지 임미다.

728x90