REST API
REST(REpresentational State Transfer) API
REST는 2000년도에 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개되었으며, HTTP를 기반으로 필요한 자원에 접근하고 제어하는 방식을 정의 해 놓은 구현 방식이다. REST는 다음과 같이 구성된다고 볼 수 있다.
자원(Resource) - URI
행위(Verb) - HTTP METHOD
표현(Representation)
자원(Resource)
REST에서는 URI를 통해 특정 자원에 접근한다. 즉, 서버에 있는 모든 resource에는 특정 URI가 부여되고, 이를 통해 접근이 가능하여야 한다.
플레이 리스트(목록) | localhost:8080/musicplayer/playlists |
플레이 리스트의 1번째 resource | localhost:8080/musicplayer/playlists/1 |
행위(Verb)
REST에서의 행위(CRUD)는 HTTP METHOD를 통해 이루어진다.
HTTP METHOD | 행위 | CRUD |
POST | 해당 URI의 resource를 조회한다. | Create |
GET | 해당 URI의 resource를 조회한다. | Read |
PUT | 해당 URI의 resource를 수정한다. | Update |
DELETE | 해당 URI의 recourse를 삭제한다. | Delete |
예를 들어, 다음과 같이 사용될 수 있다.
GET musicplayer/playlists - 플레이 리스트 목록을 조회한다. (목록조회)
GET musicplayer/playlists/1 - 플레이 리스트의 1번 resource를 조회한다. (상세조회)
POST musicplayer/playlists {DATA} - {DATA} 를 플레이 리스트에 추가한다.
DELETE musicplayer/playlists/1 - 플레이 리스트의 1번 resource를 삭제한다.
표현(Representation)
뭘까
HTTP 상태코드
REST API를 사용하여 resource에 대한 작업을 수행하면, 호출하는 쪽에서는 그 결과에 따른 HTTP 상태 코드를 받게 된다. 보다 안정적인 서비스를 위하여 개발자는 상태 코드에 따라 적절한 처리를 해야 한다.
주로 사용되는 상태 코드 몇가지는 다음과 같다.
상태코드 | 설명 |
200 | 클라이언트의 요청을 정상적으로 수행함 |
201 | (POST) 클라이언트의 리소스가 정상적으로 생성됨 |
400 | 클라이언트의 요청이 부적절함 (요청에 해당하는 메서드가 정의되지 않았음) |
401 | 클라이언트가 인증되지 않은 상태에서 리소스를 요청함 |
404 | 클라이언트가 요청한 리소스를 찾을 수 없음 |