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 body와 String 객체 사이의 변환을 위해 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 method가 Java 객체나 HashMap을 return 할 경우, Spring이 MappingJackson2HttpMessageConverter를 이용하여 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 |