이론
REST의 기본 개념
REST - 평범한 HTTP URL 을 통해 호출
REST - 리소스 지향적이고 애플리케이션을 표현하는 객체와 명사를 강조
표현(Representational) - REST 리소스는 XML, JSON(JavaScript Object Notation), HTML 등 사실상 거의 모든 형식으로 표현
상태(State) - 리소스에 대해 액션보다 상태에 더 많은 관심
전달(Transfer) - REST는 한 애플리케이션에서 다른 애플리케이션으로 어떤 표현 형식으로 리소스 데이터 전달을 포함한다.
URL에서 리소스 구별, 서버에 명령어를 보내지 않음
스프링이 REST를 지원하는 방법
이전부터 가능. 스프링 3부터 개선. 4.0 기준 설명
컨트롤러 REST 네 가지 주요 메소드 - GET, PUT, DELETE, POST. PATCH 는 스프링 3.2 이상
@PathVariable 파라미터화된 URL(경로의 일부분에 변수 입력이 있는 URL)에 대한 요청을 처리.
@RequestMapping("/dog/{name}")public String dog(@PathVariable String name) {
XML, JSON, Atom, RSS 등 다양한 방식으로 표현. 스프링의 뷰와 뷰 리졸버를 이용
클라이언트에 대한 가장 적합한 표현은 새로운 ContentNegotiatingViewRsolver를 이용해 선택
@ReponseBody 애너테이션, 다양한 HttpMessageConverter 로 뷰 기반 렌더링 무시
마찬가지로 새로운 @RequestBody 애너테이션은 HttpMethodConverter 구현체와 함께 인바운드 HTTP 데이터를 컨트롤러의 핸들러 메소드에 전달하는 자바 객체로 변환
RestTemplate은 클라이언트 측의 REST 리소스 사용을 간소화
RESTful 컨트롤러 생성
@Controllerpublic class DemoController { @ResponseBody @RequestMapping(value="/hello2", method= RequestMethod.GET) public HashMap<String, Object> test2() { HashMap<String, Object> map = new HashMap<>(); map.put("abc", "ddd"); return map; }
@RestController 이용하기. @RestController 는 @Controller 와 @ResponseBody 포함. 스프링 4.0
@RestControllerpublic class DemoController { @RequestMapping(value="/hello3", method= RequestMethod.GET) public HashMap<String, Object> test3() { HashMap<String, Object> map = new HashMap<>(); map.put("abcaa", "ddeeed"); return map; }
최소한 json을 지원하기를 추천
실제로 Spring Boot 환경에서 별다른 설정 안하면 json 이 기본
스프링은 리소스의 자바 표현을 클라이언트에 전달될 표현으로 변환하는 두 가지 방법을 제공
콘텐츠 협상 (Content Negotiation) - 모델이 클라이언트에 제공되는 표현으로 렌더링될 수 있도록 뷰는 선택된다
메시지 변환 (Message Converter) - 메시지 변환기는 컨트롤러에서 반환된 객체를 클라이언트에 제공되는 표현으로 변경
래스트풀 쓰는이유: 바로 데이터를 바인딩하기 위해
실습
스프링소스
pom.xml
kosta-servlet.xml
or.kosta.config/config.xml
or.kosta.mapper/map.xml
or.kosta.mvc.controller/DefaultController.java
or.kosta.mvc.controller/MemoRestController.java
or.kosta.mvc.controller/MessageController.java
or.kosta.mvc.controller/SpringRestController.java
or.kosta.mvc.dao/MvoDao.java
or.kosta.mvc.map/MemoMapper.java
or.kosta.vo/MemberVO.java
or.kosta.vo/MemoVO.java
result.jsp
안드로이드소스
ex1_http.xml
ex1_listview.xml
exam2_column.xml
Ex1_Http.java
Exam_UrlListView.java
'학원수업 > 안드로이드' 카테고리의 다른 글
학원 53일차 복습(6/4) (0) | 2018.06.04 |
---|---|
학원 52일차 복습(6/1) (0) | 2018.06.01 |
학원 30일차 복습(4/24) (0) | 2018.04.25 |
학원 29일차 복습(4/23) (0) | 2018.04.23 |
학원 28일차 복습(4/20) (0) | 2018.04.20 |