Spring RESTful


● 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 요청을 처리할 수 있는 등 여러가지 기능을 가지고 있다.

   - 무엇보다도 스프링이 지원하는 강력한 기능들을 사용할수 있다.


저작자 표시
신고

'혼자서 공부하기 > Spring' 카테고리의 다른 글

Spring RESTful  (0) 2017.10.08
스프링의 특징  (0) 2016.03.15
Trackback 0 Comment 0