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
'개발 > Spring' 카테고리의 다른 글
이클립스 workspace 변경 방법 (0) | 2022.11.22 |
---|---|
REST API - URI 표현 (0) | 2022.11.18 |
스프링 REST API - @ResponseEntity (0) | 2022.11.18 |
스프링 REST API - @RequestBody & @ResponseBody (0) | 2022.11.18 |
스프링 REST API - @PathVariable (0) | 2022.11.18 |
스프링 인터셉터(Interceptor) (0) | 2022.11.18 |
메이븐(Maven) 구성요소 (0) | 2022.11.17 |
스프링 @Autowired (0) | 2022.11.16 |
스프링 애너테이션(Annotation) (0) | 2022.11.16 |
스프링 트랜잭션(Transaction) (0) | 2022.11.16 |