반응형

 

 

1. REST

: web과 같은 distributed hypermedia system을 위한 구조

: 요청 가능한 resource에 대해 주소를 지정하고 HTTP 위에서 부가적인 전송 계층 없이 상태 표현을 전송하기 위한 방법을 정의

* resource : 주소(URI)를 통해 접근할 수 있는 의미있는 정보

 

 

2. RESTful Web Service 

: REST 개념에 기반하고 HTTP 프로토콜을 이용하여 구현된 resource 지향적인 서비스

1) URI를 통한 resource 식별

2) Internet media type를 이용한 resource 표현 ex) XML, JSON, RSS 등

3) HTTP method를 이용한 resource에 대한 연산 요청 ex) POST(CREATE), GET(READ), PUT(UPDATE), DELETE

 

 

3. spring MVC framework의 REST 지원

: controller 에서 get, post, put, delete 등 모든 http method 요청 처리 가능

- @PathVariable : URI에 대한 요청 처리

- @RequestBody, @ResponseBody : 요청 메시지 -> 자바객체 / 자바객체 -> 응답 메시지 변환 수행

- HttpMessageConverter : XML, JSON, RSS 등 다양한 data format에 대한 변환 처리

- RestTemplate : RESTful Service를 이용하는 클라이언트 개발 지원

 

 

 

 

4. @RequestBody / @ResponsBody

- @RequestBody : 요청 메시지의 body에 포함된 데이터를 저장할 Java 객체 지정

- @ResponseBody : Java 객체를 응답 메시지의 body에 포함될 데이터로 사용

- @RestController : @Controller의 확장으로, @ResponseBody를 자동으로 적용

 

 

 

 

5. HTTP Message Conversion

- Java 객체와 message 간의 변환 처리

: 앞 예제에서 message bodyString 객체 사이의 변환을 위해  StringHttpMessageConverter가 사용됨

: <mvc:annotation-driven/>또는@EnableWebMvc설정을통해 다양한 HttpMessageConverter 구현 객체를 생성 및 이용 가능

 

 

 

 

6. JAXB2를 이용한 XML 처리

- JAXB2 : Java class와 XML 사이의 mapping 을 위한 표준 라이브러리 (Java SE / EE에 포함됨 )

Java objects => XML data (marshalling)

XML data => Java objects (unmarshalling)

 

 

 

예 1)

 

예 2)

 

 

 

- Controller : GET 요청 처리

* 객체 타입(MessageList)JAXB2가 적용된 클래스일 경우, Jaxb2RootElementHttpMessageConverter를 이용하여 return 객체를 XML 데이터로 변환하여 응답 메시지 body에 출력

 

 

- Controller : POST 요청 처리

 

Client(browser) : XML 데이터를 포함한 POST 요청 생성

 

 

 

7. JSON

- Data Type : 수, 문자열, 불린, 배열, 객체(순서가없음), null

예 ) 

 

 

 

 

 

8. Jackson2

: Java 객체와 JSON 형식 데이터 사이의 변환 실행

 

 

- Controller : GET 요청 처리

* Request handler methodJava 객체나 HashMapreturn 할 경우, SpringMappingJackson2HttpMessageConverter를 이용하여 return 객체를 JSON 데이터로 변환함

 

 

 

* JSON 변환 제외 처리 : @JsonIgnore

 

 

* 날짜 형식 변환 처리 : @JsonFormat

 

 

 

- Controller : POST 요청 처리

: 요청 메시지를 통해 전송된 JSON 데이터를 java 객체로 변환하여 사용

 

Client : Ajax

 

 

 

 

 

8. RestTemplate

 

 

- REST client 구현

: RESTful Service를 호출하기 위한 다양한 메소드 제공

: HttpMessageConverter를 이용해 message와 JAVA 객체 간 변환

 

 

- 주요 메서드

1) 가변 인자 방식을 이용한 parameterized URL

2) Map 을 이용한 parameterized URL

3) java.net.URI 이용

 

 

 

 

 

 

9. RestTemplate을 이용한 HTTP method

1) GET 요청

 

 

2) POST

 

- PUT

 

 

 

- DELETE 

 

 

반응형

'Programming > Spring' 카테고리의 다른 글

12. Spring & JPA  (0) 2021.06.08
11. Transaction Management  (0) 2021.06.08
09. Spring JDBC  (0) 2021.06.01
08. MyBatis  (0) 2021.06.01
07. Thymeleaf  (0) 2021.05.31

+ Recent posts