EST(Representational State Transfer)는 웹 아키텍처 스타일 중 하나로, 웹 기반 시스템 간의 상호작용을 단순하고 효율적으로 만들기 위해 만들어졌다.
HTTP URI를 통해 자원(Resource)을 명시하고, 'HTTP Method(POST, GET, PUT, DELETE, PATCH 등)'를 통해 해당 자원(URI)에 대한 'CRUD Operation'을 적용
REST는 HTTP URI(Uniform Resource Identifier)를 통해 Client와 Server 사이의 통신하는 방식 중 하나로, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 자원을 처리(CRUD)하도록 설계된 아키텍쳐를 말한다.
리소스(Resource): 리소스는 REST API에서 조작하고자 하는 모든 것을 의미한다. 예를 들어, 사용자, 게시물등이있다.
ex) https://example.com/users/1
표현: 리소스는 다양한 형식으로 표현될수 있지만 일반적인 REST API는 JSON형식을 많이 사용한다.
무상태성: REST API는 무상태성을 유지한다. 즉, 각 요청은 독립적이며, 서버는 이전 요청의 상태를 기억하지 않는다. 모든 필요한 정보는 요청에 포함되어야 한다.
클라이언트-서버 구조: 클라이언트와 서버는 분리되어 있으며, 서로 독립적으로 동작한다. 클라이언트는 사용자 인터페이스와 사용자 경험을 담당하고, 서버는 데이터 저장과 비즈니스 로직을 처리한다.
캐시 가능성: 응답은 캐시될 수 있어야한다. 이를 통해 네트워크 효율성을 높이고 응답 시간을 줄일 수 있다.
계층화 시스템: REST API는 계층화된 아키텍처를 지원한다. 클라이언트는 중간 서버를 통해 최종 서버와 통신할 수 있다.
REST를 기반으로 API를 구성한것이 REST API이다. OpenAPI를 제공하는 곳 들이 대부분 REST API로 지원을 한다.
REST API는 주로 HTTP 메서드를 사용하여 리소스에 대한 작업을 수행한다.(데이터를 CRUD작업과 빗대어 표현해 보겠다.)
GET: Read 부분 - 리소스 조회
POST: Create 부분 - 새로운 사용자 생성
PUT: resource를 Update를 하거나 전체를 대체한다.
PATCH: 리소스의 부분적인 업데이트를 수행한다.
DELETE: 리소스를 삭제한다.