REST란?

Representational State Transfer 의 약자로 소프트웨어 프로그램 개발의 아키텍처의 한 형식입니다. Roy Fielding의 박사학위 논문에서 최초로 소개되었다. 간단히 URL로 리소스에 대한 행위를 정의한다는 뜻이다.

RESTful

REST는 위 정의들을 구현하는 방식에 제약을 두지 않기 때문에 구체적인 가이드라인이 없습니다. 하지만 RESTful이라는 개념을 통해 그 가이드라인이 제시됩니다. RESTful는 REST를 REST답게 쓰기 위한 방법으로 누군가가 공식적으로 발표한 것이 아니라 여러 개발자들이 비공식적으로 의견을 제시한 것들로 명확한 정의는 없습니다. 즉 개발자마다 생각하는 RESTful의 내용이 다르다는 것이죠. 하지만 RESTful의 목적은 명확합니다. 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것입니다.

CRUD HTTP verbs Route
목록들 표시 GET /resource
하나의 내용 표시 GET /resouce/:id
생성 POST /resource
수정 PUT /resouce/:id
삭제 DELETE /resouce/:id

예제:

  • student를 생성하는 route은 POST /students
  • id가 13인 student를 삭제하는 route은 DELETE /students/13

RESTful하지 못한 예:

  • CRUD(생성,조회,수정,삭제)기능을 모두 POST로만 처리하는 API
  • Route에 resource, id 외 정보가 들어가는 경우 (/students/updateName, student 하나의 이름만 변경하는 API의 경우 PUT students/:id/name이 되어야 합니다.)
chanhee.kim's profile image

chanhee.kim

2018-02-15 11:13

Read more posts by this author