개발노트

REST API

dantae 2020. 3. 19. 11:19

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 클라이언트가 요청한 리소스를 찾을 수 없음