REST(Representation State Transfer)는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍쳐의 한 형식이다.
- 네트워크 아키텍쳐 원리의 모음이다.
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
- 자원 : 해당 소프트웨어가 관리하는 모든 것이다. 문서, 그림, ...
- 지원의 표현 : 그 자원을 표현하는 이름
API 는 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며 서로 정보를 교환할 수 있는 것이다.
Uniform Interface
URL 로 지정된 리소스에 대한 조작을 통일하고 한정적인 인터페이스로 수행하는 아키택쳐 스타일이다.
Client-Server
서버는 API를 제공하고 클라이언트는 로그인 등 직접 관리하는 구조다. 역할이 구분되기 때문에 개발할 내용이 명확하고 의존성이 줄어든다.
Stateless
작업을 위한 상태 정보를 따로 저장하고 관리하지 않는다. API 서버는 들어오는 요청만 단순히 처리한다. 서비스의 자유도가 높아지고 서버에 불필요한 정보를 관리하지 않는다.
Cacheable
HTTP가 가진 캐싱 기능이 적용 가능하다. HTTP 웹 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 활용 가능하다.
Layered System
다중 계층으로 구성될 수 있다. 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있다.
Self-descriptiveness
REST API 메세지만 봐도 쉽게 이해할 수 있는 자체 표현 구조로 되어있다.
Code-On-Demand
서버로부터 스크립트를 받아서 클라이언트에 실행된다.
resource : URL
Method : HTTP METHOD
representation
GET /members/1
[Network] REST란? REST API란? RESTful이란?
REST API 제대로 알고 사용하기
REST API 란 ?