소프트웨어 아키텍처 스타일 중 하나로 인터넷과 같은 복잡한 네트워크 통신을 관리하기 위해 어떻게 동작해야 하는지에 대한 제약 조건을 정의한다. REST 기반 아키텍처를 사용하면 대규모의 고성능 통신을 안정적으로 사용할 수 있다.
다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의하는 것을 의미한다.
REST 아키텍처 스타일을 따르는 API를 의미한다.
클라이언트가 서버에 요청, 클라이언트는 API 문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정
서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인
서버는 요청을 수신하고 내부적으로 처리
서버가 클라이언트에게 응답을 반환, 요청 성공 여부와 요청한 정보를 포함
고유 리소스 식별자
REST 서비스의 경우 서버는 일반적으로 URL을 사용하여 리소스를 식별
메서드
HTTP 메서드는 리소스를 수행해야 하는 작업을 서버에 전달
대표적인 HTTP 메서드 4가지
GET : 클라이언트가 서버의 지정된 URL에 있는 리소스에 액세스,
API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시 가능
POST : 클라이언트가 서버에 데이터를 전송
PUT : 서버의 기존 리소스를 업데이트
DELETE : 리소스를 제거, 서버의 상태 변경 가능
HTTP 헤더
요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보 제공
데이터 : HTTP 메서드를 동작하기 위한 데이터
파라미터 : URL의 경로를 지정하는 경로 파라미터
, 리소스에 대한 초가 정보를 요청하는 쿼리 파라미터
, 빠른 인증을 위한 쿠키 파라미터