REST란, REpresentational State Transfer의 약자이다.
즉, RESTFUL API란 REST의 기본 원칙을 충실히 지킨 서비스의 API를 의미한다.
-> 직역하자면, 자원의 표현에 의한 상태를 전달하는 API!
REST의 구성
- 자원 ( URI )
- 행위 ( HTTP Method )
- 표현 ( 자원의 표현 )
REST의 6가지 원칙
- Uniform Interface
- Stateless
- Caching
- Client-Server
- Hierarchical System
- Code on Demand
RESTFUL API 설계 원칙
기본적으로 RESTFUL API의 기본 설계 원칙을 봤을 때, 요구하는 키 포인트는 하나이다.
바로, 직관성이다.
모든 설계 규칙이 돌고 돌아 결국 어떤 자원을 원할 때 필요한 API를 곧바로 도출해낼 수 있도록 설계해야한다라는 것을 의미한다.
- 자원과 행위를 반드시 구분한다. ( URI와 Method )
- 슬래시 구분자는 계층 관계를 나타낸다.
- 하이픈(-)은 URI 가독성을 높이는데 사용된다.
- 밑줄은 URI에 사용하지 않는다.
- URI 경로에 대문자는 되도록 회피한다.
- 리소스 간의 연관 관계의 경우, 관계의 주체 뒤에 관계가 있는 다른 리소스명을 나타낸다.
REST API의 장단점
장점
- 직관적이다.
a. Rest API는 자원을 uri에, 행위를 method로 분리하여 계층구조 형태로 설계되는 것이 기본 개념이기 때문에 직관적으로 어떤 자원에 대한 어떤 조작인지 알 수 있다.
- 서버와 클라이언트의 역할을 명확히 분리한다.
a. 서버에서는 데이터를 가공해서 전달해주고, 프론트에서는 전달받은 데이터로 화면에 뿌려주는 역할에 집중한다.
- HTTP를 그대로 사용하기 때문에, 웹의 장점을 최대한으로 활용할 수 있다.
a. REST API를 사용하기 위한 별도의 인프라 구축이 필요없다
단점
- 명확한 표준이 존재하지 않는다.
- 사용할 수 있는 메소드가 한정적이다.