REST란
REpresntational State Tranfer의 약자로, 주로 HTTP 프로토콜을 사용한 소프트웨어 설계에서 사용되는 아키텍처 스타일이다.
정확히는 REST란 자원을 이름으로 구분하여 자원에 대한 정보를 주고 받는 것을 말한다.
- 여기서 자원이란 HTML과 같은 파일들, 데이터, 소프트웨어 자체 등
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
REST 구성 요소
REST는 다음과 같은 3가지로 구성이 되어있다.
- 자원(Resource) : HTTP URI
- 자원에 대한 행위(Verb) : HTTP Method
- 자원에 대한 행위의 내용 (Representations) : HTTP Message Pay Load
REST API 란
REST API란, 말 그대로 REST형식의 API를 말한다.
REST API는 확장성, 유연성, 독립성의 장점이 있기 때문에 대부분의 API 개발에서 사용된다.
REST API구성 요소
REST API는 다음과 같은 3가지로 구성이 되어있다.
- 고객(Client)
- 서버(Server)
- 자원(Resource)
REST의 특징
REST의 주요 특징은 아래와 같다. 다시 말해 아래의 특징들을 지니지 않은 API는 REST API가 될 수 없다.
- client-server : 자원이 있는 쪽을 Server, 요청하는 쪽을 Clinet라 하는데 각각은 API 제공 및 비즈니스 로직 처리, 사용자 인증 또는 context등을 관리하는 책임을 진다.
- stateless : HTTP는 상태성이 없다. 즉 상태를 저장하지 않는데, Rest는 HTTP를 사용하기 때문에 마찬가지로 Stateless하다.
- cache : 무상태성과 비슷하게 HTTP의 특징 중 하나인 캐쉬를 사용할 수 있다.
- uniform interface
- layered system : Clinet는 REST API Server만 호출한다.
- code-on-demand (optional)
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html