1. 개요
REST(Representational State Transfer API)는 웹 어플리케이션에서 서로 다른 엔드포인트 끼리 데이터를 주고받기 위한 아키텍쳐(설계 구조)이다. 해당 구조론을 적용하여 만든 API를 RESTful API라고 한다.
가장 많이 사용되는건 백엔드(서버)단에서 프론트엔드(클라이언트)와 DB의 연결을 중개할 때 사용하지만, 서로다른 엔드포인트 (프론트-백엔드-프론트 등)에서 사용할 수 있다.
1.1 REST구조의 6가지 조건
- 인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 한다
- 무상태(Stateless) : 각 요청간 클라이언트의 컨텍스트가 서버에 저장되어서는 안된다.
- 캐시처리(Cacheable) : WWW와 마찬가지로 클라이언트는 응답을 캐싱할 수 있어야 한다.
- 계층화(Layered System) : 클라이언트는 서버에 직접 / 간접적으로 연결되었는지 파악할 수 없다.
- 클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리하여 서버-클라이언트가 독립적으로 개선될 수 있게 한다.
- Code on demand(옵션) : Java 애플릿 혹은 JS의 제공을 통해 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
2. 내용
2.1 CRUD
CRUD는 Create, Read, Update, Delete의 약자로, API를 사용하기 위해 필요한 가장 기본적인 기능들을 의미한다.
2.1.1 Create
새로운 데이터를 생성하고, 저장한다. 본문에 새로운 데이터를 포함해 서버에 전달하게 된다.
2.1.2 Read