- REpresentational State Transfer, 자원 표현의 의한 상태 전달
- 자원을 이름으로 지어, 해당 자원의 상태를 전달하는 규약을 뜻한다
- REST 구성은 아래 3가지로 분류 된다
- Resource : 자원, URI
- Verb : 행위, HTTP Method
- Representations : 표현 행위
특징
- Uniform (유니폼 인터페이스) : URI로 지정한 리소스에 대한 조작을 통일한 인터페이스로 수행하는 아키텍쳐 스타일
- Stateless (무상태성) : 작업을 위한 상태 정보를 따로 저장하고 관리하지 않는다
- Cacheable (캐시 가능) : HTTP 웹 표준을 사용하기에 HTTP가 가진 캐싱 적용이 가능
- Self-descriptiveness (자체 표현 구조) : API 메시지만 보고도 쉽게 이해할수 있는 자체 표현 구조
- Client - Server 구조 : 서버는 API 제공, 클라이언트는 컨텍스트 (로그인 정보) 를 직접 관리하는 구조로 역할이 구분
- 계층형 구조 : 다중 계층으로 구성할수 있고, 보안, 로드 밸런싱 등을 추가해 구조의 유연성을 추가할 수 있음
장점
- HTTP 프로토콜 인프라를 그대로 사용하기에 별도의 인프라 구축이 필요없음
- HTTP 프로토콜을 따르는 모든 플랫폼에서 사용 가능
- REST API가 의도하는 바를 명확하게 나타내므로 의도를 쉽게 파악할 수 있음
단점
- HTTP 통신 모델에 한해서만 지원
- 메소드가 4가지밖에 없다
REST API
- REST 기반으로 서비스 API를 구현한 것, RESTful 하다 라고도 얘기를 많이 함
REST API 설계 규칙