REST API의 설계 규칙을 올바르게 따르는 시스템을 말한다.
즉, REST API를 사용하였지만 RESTful 하지 못한 시스템일 수도 있는 것이다.
REST (Representational State Transfer)
자원 (URL)
=> 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
행위 (Method)
=> Http Method를 사용한다.
=> HTTP프로토콜은 GET, POST, PUT, DELETE 과 같은 메서드를 제공.
표현
=> 클라이언트가 자원의 상태에 대한 조작을 요청하면 서버는 이에 적절한 응답을 보낸다.
REST API 디자인을 정의한 Fielding 박사가 정한 6가지 기본 원칙이 있다고한다.
6가지 기본원칙
1. stateless
2. 클라이언트 서버구조
3. 균일한 인터페이스
4. 캐시가능
5. 계층화된 시스템
6. 주문형 코드
서로간의 의존성이 줄어드는 장점이 있다.
균일한 인터페이스
통일성을 위한 REST에는 인터페이스 제약조건이 있다.
캐시 가능
REST API 응답은 캐싱이 가능해야 한다. 클라이언트는 응답을 캐시하여 나중에 동등한 응답에 대해 재사용 할 수 있음.
=> 애플리케이션의 성능향상
계층화된 시스템
클라이언트는 최종 서버와 직접 통신하는건지, 중간에 다른 계층이 있는건지 알 수 없어야 한다.
=> 각 계층의 구성 요소가 바로 다음 계층을 넘어 상호 작용할 수 없으므로 애플리케이션의 보안을 강화하는 데 도움이 된다.
=> 보안 및 안정성 향상에 좋음.
주문형 코드
=> 이것은 선택적 제약조건
=> 클라이언트 코드나 애플릿을 다운로드하여 애플리케이션 내에서 사용할 수 있다.