REST란 'Representational State Transfer'의 약자로, 웹과 같은 분산 하이퍼미디어 시스템 아키텍처의 한 형식. 주고받는 자원(Resource)에 이름을 규정하고 URI에 명시해 HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원의 상태를 주고받는 것을 의미한다.
기본적으로 웹의 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
HTTP URL을 통해 자원(Resource)을 명시하고, HTTP Method(GET, POST, PUT, DELETE)을 통해 해당 자원에 대한CRUD Operation을 적용하는 것을 의미한다.
API의 개념을 짚고 가야한다. API는 'Application Programming Interface'의 약자로, 애플리케이션에서 제공하는 인터페이스를 의미한다. 각각의 애플리케이션의 데이터를 주고 받기 위해 API가 사용된다.
즉, REST API는 REST 아키텍처를 따르는 시스템/애플리케이션 인터페이스라고 볼 수 있다. 이렇게 REST 아키텍처를 구현하는 웹 서비스를 'RESTful하다'라고 표현을 한다.
유니폼 인터페이스
무상태성
캐시 가능성
레이어 시스템
클라이언트 - 서버 아키텍처
CURD | HTTP Method | URI |
---|---|---|
resource들의 목록 표시 | GET | /resource |
resource 하나의 표시 | GET | /resource/:id |
resource를 생성 | POST | /resource |
resource를 수정 | PUT | /resource/:id |
resource를 삭제 | DELETE | /resource/:id |
응답 상태코드
- 1XX : 전송 프로토콜 수준의 정보 교환
- 2XX : 클라이언트 요청이 성공적으로 수행됨
- 3XX : 클라이언트는 요청을 완료하기 위해 추가적인 행동을 취해야함
- 4XX : 클라이언트의 잘못된 요청
- 5XX : 서버 쪽 오류로 인한 상태코드
와 ! 짱 !