REST API란 REST(Representational State Transfer) 아키텍처의 제약 조건을 준수하는 API이다.
API(Application Programming Interface)는 따로 정리
REST는 분산 Hypermedia system (ex: 웹)를 접근하기 위해 개발된 Software Architecture Style(제약조건의 집합)이며 protocol이나 표준이 아닌 아키텍쳐 원칙 세트이다
네트워크에서 Server와 Client 기기간의 의사소통하는 규격 사항 HTTPs를 이용한다.
HTTP의 GET,POST,PUT,DELETE Method를 사용해 접근과 제어를 할 수 있다.
RESTfulAPI는 요청(call)이 수행될 때 리소스 상태에 대한 표현을 요청자에게 전송한다.
이때 데이터의 전송을 XML이나 JSON을 이용하며 이런 REST를 사용하는 Software Architecture를 RESTful 아키텍처라 부른다.
client-server
요청이 HTTP를 통해 관리되는 Architecture
stateless
요청간 client 정보가 저장X, 각 요청이 분리, 서로 연결 X
cache
client-server 상호 작용을 간소화하는 캐시 가능 데이터
uniform interface
정보가 표준 형식으로 전송되도록 하기 위한 구성 요소 간 통합 인터페이스
GET / HTTP/1.1
이와 같은 메시지는 목적지(HOST)가 없어서 불충분하다. http://127.0.0.1:8000/products/find_items
동사 Xhttp:~:8000/products?name="something"
query를 이용해 검색layerd system
요청된 정보를 검색하는 데 관련된 서버(보안, 로드 밸런싱 등을 담당)의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 체계화하는 계층화된 시스템
code-on-demand (optional)
요청을 받으면 서버에서 클라이언트로 실행 가능한 코드를 전송하여 클라이언트 기능을 확장할 수 있는 기능.
이중에서 uniform interface가 중요한 이유는 독립적 진화때문이다.
참고 :
https://www.youtube.com/watch?v=RP_f5dMoHFc
https://www.redhat.com/ko/topics/api/what-is-a-rest-api
https://tuhbm.github.io/2019/04/24/architecture/