REST는 HTTP 아키텍처이다. HTTP 프로토콜을 제대로 사용하라고 유도하는 아키텍처이다.
REST의 원칙을 제대로 지킨 디자인을 RESTful 하다고 말할 수 있다.
REST API는 REST를 기반으로 서비스 API를 구현한 것을 말한다.
REST API는 자원, 행위, 표현 이 3가지로 구성되고, REST API만으로 HTTP 요청의 내용을 이해할 수 있다.
모든 자원에는 고유한 ID가 존재한다. 이 자원은 서버에 존재한다.
클라이언트는 URI를 통해 서버에 특정 자원을 요청한다.
HTTP 프로토콜의 메소드를 사용한다.
HTTP 프로토콜의 메소드에는 GET, POST, PUT, DELETE 등이 있다.
자원은 JSON, XML, TEXT, RSS 등 다양한 형태로 주고받아진다.
# bad
GET /getTodos/1
GET /todos/show/1
# good
GET /todos/1
동사보다는 명사를 사용한다.
자원의 store, collection의 이름으로는 복수형을 사용한다.
자원을 갖고 있는 쪽이 server, 자원을 요청하는 쪽이 client
server는 api 제공, 비즈니스 로직 처리 및 저장
client는 사용자 인증, 세션, 로그인 정보 등을 직접 관리하고 저장
client의 context(세션, 쿠키) 등을 서버에 저장할 필요가 없다.
server는 각각의 요청의 별개의 것으로 인식하고 처리한다.
이전 요청이 다음 요청의 처리에 연관되어서는 안된다.
/(슬래시)는 계층 관계를 나타낸다.
URI 마지막 문자에 /를 포함하면 안된다.
불가피하게 긴 URI 경로를 사용할때는 - 하이픈을 사용한다.
_ 언더바는 사용하지 않는다.