-
Spring RESTful혼자서 공부하기/Spring 2017. 10. 8. 03:40728x90반응형SMALL
● REST ( Representational State Transfer)
- 하나의 URI는
하나의 고유한 Resource를 대표하도록 설계
- 특정 URI는 각각 상응하는 데이터를 의미
- 데이터에 대한 처리는 HTTP 통신( GET/POST/PUT/DELETE) 과 같은 추가적인 정보를 통해 결정
● REST Service : 특정 URI를 통해서 사용자가 원하는 정보를 제공하는 방식
● RESTful API : REST 방식으로 제공되는 외부 연결 URI
● REST 와 HTTP methods
- GET : 리소스 또는 리소스 컬렉션을 얻어옴
- POST : 리소스 생성
- PUT : 리소스 업데이트
- DELETE : 리소스 삭제
● REST Annotation - @ResponseBody
- 메소드 또는 메소드의 리턴타입에 사용되는 Annotation
- @Controller Annotation 이 있는 클래스에서 정의된 메소드 리턴타입에 @ResponseBody Annotaion 을 사용하면, 클라이언트로 JSP 가 아닌 데이터 자체가 메시지를 가공해서 클라이언트로 전달됨
- Spring 3 부터 지원
● REST Annotation - @RestController
- Controller 클래스에 사용되는 Annotation
- JSP 와 같은 View를 만들어내는것이 목적이 아닌, REST 방식의 데이터 처리를 위한 Controller Class 임을 선언하는 Annotation
- @RestController의 모든 Controler Method들은 @ResponseBody Annotation 없이 View가 아닌 데이터 자체를 클라이언트(=브라우저)에게 서비스(=리턴) 하는 Method가 됨.
- Spring 4 부터 지원
● Java 플랫폼에서는 JSR-311(JAX-RS : The Java API for RESTful Web Service) 스펙을 제공함으로써 Java Annotation 을 이용한 RESTful 웹서비스를 구현할 수 있게 도와주고 있다.
- Apache CXF , Jersey, Restlet 과 같은 구현체를 이용하면 REST기반 웹 서비스를 만들 수 있다.
● Spring Web MVC 는 JSR-311을 따르지 않지만, REST 기반의 웹서비스 개발에 필요한 기능 대부분을 구현하고 있다.
- 간단하게 하나의 자원(Resources)을 여러개의 Representation(JSON/XML/ATOM/RSS 등)으로 표현할 수 있다.
- 브라우저에서 지원하지 않는 PUT/POST 요청을 처리할 수 있는 등 여러가지 기능을 가지고 있다.
- 무엇보다도 스프링이 지원하는 강력한 기능들을 사용할수 있다.
728x90반응형LIST