REST : 자원(resource)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것.
자원에 의한 상태(정보) 전달.
REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있다.
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.
구체적으로 말하자면 HTTP URI를 통해 자원(Resource)을 명시하고 HTTP Method(POST, GET, PUT, DELTE)를 통해
상태(정보)를 어떻게 처리할 것인지에 대한 행위를 정의한다.
CRUD
Create: 생성(POST)
Read: 조회(GET)
Update: 수정(PUT)
Delete: 삭제(DELETE)
REST의 장단점
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
- 서버와 클라이언트의 역할을 명확하게 분리한다.
단점
- 표준이 존재하지 않는다.
- 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 존재한다.
REST API : 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환 가능하도록 하는 것.
REST 기반으로 서비스 API를 구현한 것.
REST API 특징
확장성과 재사용을 높여 유지보수 및 운용을 편리하게 할 수 있다.
REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현 할 수 있다.
RESTful : REST 아키텍처를 구현하는 웹 서비스를 나타내기 위한 용어다.
RESTful의 목적
- 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것.
- 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것.