14.1 RESTful 웹 서비스의 개요
이 절에서는 도서 쇼핑몰의 장바구니를 만드는 RESTful 웹 서비스와 구성 요소를 알아봅니다.
RESTful 웹 서비스는 HTTP와 웹의 장점을 최대한 활용할 수 있는 아키텍처인 REST(REpresentational State Transfer) 원리를 사용하여 구현된 웹 서비스입니다. REST는 HTTP에서 어떤 자원에 대한 CRUD 요청을 리소스와 메서드로 표현하여 특정한 형태로 전달하는 방식입니다. 즉, 어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하려고 URI로 자원을 명시하고 GET, POST, PUT, DELETE 등 HTTP 방식을 사용해서 요청을 보내며, 요청에 대한 자원은 JSON, XML, TEXT, RSS 등 특정한 형태(representation of resource)로 표현됩니다.
예를 들어 도서 쇼핑몰에서 신규 도서를 작성하기 위해 http://localhost:8080/BookMarket/books/add라는 URI에 POST 방식을 사용하여 JSON 형태의 데이터를 전달할 수 있습니다. 이와 같이 CRUD 연산을 요청할 때는 요청 리소스(URI)와 요청(POST) 메서드, 리소스 형태(JSON)를 사용하면 명확하게 표현할 수 있습니다. 이 세 가지가 REST의 구성 요소입니다.
▼ 표 14-1 REST의 구성 요소
종류 |
설명 |
리소스 |
서버는 고유 아이디가 있는 리소스를 가지며, 클라이언트는 이런 리소스에 요청을 보냅니다. 리소스는 URI에 해당합니다. |
메서드 |
서버에 요청을 보내는 방식으로 GET, POST, PUT, PATCH, DELETE가 있습니다. CRUD 연산 중에서 연산에 맞는 Method를 사용하여 서버에 요청해야 합니다. |
리소스 형태 |
클라이언트와 서버가 데이터를 주고받는 형태로 JSON, XML, TEXT, RSS 등이 있습니다. 최근에는 키(Key), 값(Value)을 활용하는 JSON을 주로 사용합니다. |