URI란 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다.웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스이다.
비록 URL은 URI의 서브셋이지만 URI와 URL의 가장 큰 차이점은 아래와 같다.
=> URI는 식별하고, URL은 위치를 가리킨다.
REST의 특징
Server-Client(서버-클라이언트 구조)
Stateless(무상태)
Cacheable(캐시 처리 가능)
Layered System(계층화)
Uniform Interface(인터페이스 일관성)
REST API란?
REST API란 REST의 원리를 따르는 API를 의미한다.
REST API를 올바르게 설계하기 위해서는 아래와 같은 규칙들을 따라야 한다.
REST API 설계 규칙
URI는 정보의 자원을 표현해야 합니다. (리소스명은 동사보다는 명사를, 대문자보다는 소문자를 사용합니다.)
자원에 대한 행위는 HTTP METHOD로 표현합니다.
마지막에 슬래시(/)를 포함하지 않는다.
언더바 대신 하이폰을 사용한다. ( _ ⇒X / - ⇒ O)
파일 확장자는 URI에 포함하지 않는다. ( photo.jpg ⇒ photo )
RESTful이란?
RESTful이란 REST의 원리를 따르는 시스템을 의미한다.
하지만 REST를 사용했다 하여 모두가 RESTful 한 것은 아니다.
REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful 하다고 말할 수 있으며 모든 CRUD 기능을 POST로 처리하는 API 혹은 URI 규칙을 올바르게 지키지 않은 API는 REST API를 사용하였으나 RESTful 하지 못한 시스템이라고 할 수 있다.