REST
Representational State Transfer의 약자로 월드 와이드 웹(www)의 기술과 HTTP프로토콜을 그대로 활용하여 웹의 장점을 최대한 활용할 수 있는 아키텍처 기술이다.- HTTP URI
(Uniform Resource Identifier)를 통해 자원을 명시하고, HTTP 메소드를 통해 해당 자원을 CRUD하는것을 의미한다. - 공식적으로 표준화된 표준규약이 없다.
REST API
- 위 설명한
REST기반으로 서비스의 API를 제공하는 것.
REST API 설계 규칙
-
URI만으로 어떤 정보를 제공할 것인지 명확해야 한다.
- 동사를 사용하지 않는다. 명사를 사용하며 이 때에도 단수명사를 사용한다.
- ex) GET : /user/1 (ok)
- ex) GET : /users/1 (err)
-
HTTP행위에 맞게 사용한다.
약어 C R U D - Create Read Update Delete 의미 생성 조회 수정 삭제 HTTP post get put delete -
URI에 HTTP Method가 들어가지 않는다.
- ex) GET : /user/1 (ok)
- ex) GET : /user/get/1 (err)
-
최대한 사용을 자제해야하지만 불가피하게 단어가 길어질 경우 - 하이픈을 사용한다.
-
HTTP response CODE는 HTTP문서를 따른다.
RESTful
- REST에서 설명하였듯이 공식적으로 표준화된 규약이 없다.
REST API를 제공하는 서비스를 RESTful하다고 부른다. (필자마다 개념이 조금씩 다를 수 있다.)- 이해하기 쉬운 REST API를 설계하는것에 목적이 있다.
- RESTful한 API는 성능향상의 목적이 아니기 때문에 최대한 일관성있고 명확하게 설계해야한다.
- References