REST(Representation State Transfer)
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고
- HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
- 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것
REST 구성 요소
- 자원(Resource) : HTTP URI
- 모든 자원에 고유한 id가 존재하고 이 자원은 Server에 존재
- 자원을 구별하는 id 는 'localhost:8080/user/:userId' 와 같은 HTTP URI
- Client 는 URI 를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server 에 요청
- 자원에 대한 행위(Verb) : HTTP Method
- HTTP 프로토콜은 GET, POST, PUT, DELETE, HEAD 와 같은 메서드를 제공
- 자원에 대한 행위의 내용(Representation) : HTTP Message Pay Load
- Client 가 자원의 상태(정보)에 대한 조작을 요청하면 Server 는 이에 적절한 응답표현 (Representation) 보냄
- REST 에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 Representation 으로 나타내어 질 수 있음
REST 특징
- Server-Client(서버-클라이언트 구조)
- Stateless(무상태)
- Cacheable(캐시 처리 가능)
- Layered System(계층화)
- Uniform Interface(인터페이스 일관성)
REST API
API(Application Programming Interface)
데이터와 기능의 집합을 제공하여 프로그램간 상호작용을 하며, 서로 정보교환이 가능하게 하는 것
REST API
REST 기반으로 서비스 API를 구현한 것