REST, RESTful, REST API 등등 용어가 많은데 개념 정리를 제대로 해야 할 것 같아서 찾아보았다.
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
해당 자원(URI)에 대한 상태를 주고 받는 모든 것(CRUD)을 의미한다.
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말로, REST에서의 CRUD Operation 동작 예시는 다음과 같다.
Create : 데이터 생성(POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT, PATCH)
Delete : 데이터 삭제(DELETE)
REST는 다음과 같은 3가지로 구성이 되어있다.
자원(Resource) : HTTP URI
자원에 대한 행위(Verb) : HTTP Method
자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load
REST API란, REST를 기반으로 만들어진, REST의 원리를 따르는 API이다.
REST API를 올바르게 설계하기 위해서는 지켜야 하는 몇가지 규칙이 있다.
Bad Example http://khj93.com/Running/
Good Example http://khj93.com/run/
Bad Example http://khj93.com/test/
Good Example http://khj93.com/test
Bad Example http://khj93.com/test_blog
Good Example http://khj93.com/test-blog
Bad Example http://khj93.com/photo.jpg
Good Example http://khj93.com/photo
Bad Example http://khj93.com/delete-post/1
Good Example http://khj93.com/post/1
RESTful이란, REST의 원리를 따르는 시스템을 의미한다.
하지만 REST를 사용했다 하여 모두가 RESTful한 것은 아니다.
REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다고 하며,
모든 CRUD 기능을 POST로 처리 하는 API나 REST API의 설계 규칙을 올바르게 지키지 못한 시스템은 REST API를 사용하였지만 RESTful 하지 못한 시스템이다.