본문 바로가기

Personal Posting/Web

RESTful 정리

REST란: REpresentational State Transfer의 약자로서 이미지, 동영상, DB 자원 등 모든 자원에 URI를 부여해서 사용하는 것. 즉 자원들을 이름 등의 정보로 표현함으로써 해당 자원을 정의하고 이 자원에 대한 상태를 주고 받는 개념

 

짧게 정리하면 자원(Resource)의 표현(Representation)에 의한 상태 전달 (RESTful: REST 개념으로 구현하는 방법론)

 

1. 자원(resource)의 표현(representation)
   자원 : 해당 프로그램이 사용하는 모든 리소스

            ex) 문서, 데이터, 코드 등 
   자원의 표현: 그 자원을 표현하기 위한 이름
            ex) DB의 학생 정보를 자원이라고 보면 ‘students’는 자원의 표현으로 볼 수 있다. 

2. 상태(정보) 전달
   데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.
   JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.

 

REST의 세 가지 구성 요소

  1. 자원(Resource) : URL
    - 모든 자원에는 고유한 ID가 존재고, 이 자원들은 Server에 저장되어 있다.
  2. 행위(Verb) : HTTP Method
    - Client는 HTTP Method(POST, GET, PUT, DELETE)를 이용하여 지정한 자원에 대한 조작을 서버에 요청한다.
  3. 표현(Representation of Resource)
    - Client가 서버에 자원에 대한 조작을 요청하면 Server는 이에 대한 적절한 응답(Representation)을 보낸다.

HTTP Method CRUD operation에 해당하는 PGPD가 있다.

(1:1로 매핑했지만 always same이라고 볼 수는 없다. 후술)

CREATE :  POST

READ    :  GET

UPDATE :  PUT

DELETE  :  DELETE

 

ex)

GET -> /sports (sports의 list를 get해온다.)

GET -> /sports/:id (ID인를 통해 sports를 get해온다.)

POST -> /sports (새로운 sports를 생성한다.)

PUT -> /sports (현재의 sports를 업데이트한다.)

DELETE -> /sports (현재의 sports를 삭제한다.)