REST란?
Representational State Transfer : 자원의 상태 전달 - 네트워크 아키텍처
다음의 인터페이스를 일광성이 잘 지켜졌는지에 따라, REST를 잘 사용했는지 판단을 할 수 있다.
1. 자원의 식별 - 웹 기반의 REST에서는 리소스 접근을 할 때 URI를 사용 합니다
ex) http://foo.co.kr/user/100
Resource : user
식별자 : 100
2.메시지를 통한 리소스 조작 - Web에서는 다양한 방식으로 데이터를 전달 할 수 있다.
예) HTML, XML, JSON, TEXT등
이 중에서 어떠한 타입의 데이터인지를 알려주기 위해 HTTP Header부분에 content-type을 통해 데이터 타입을 지정해줄 수 있다.
또한, 리소스 조작을 위해서 데이터 전체를 전달하지 않고, 이를 메시지를 전달 합니다.
3. 자기 서술적 메시지 - 요청하는 데이터가 어떻게 처리 되어져야 하는지 충분한 데이터를 포함 할 수 있어야 한다.
HTTP 기반의 REST에서는 HTTP Method와 Header정보, 그리고 URI의 포함되는 정보로 표현 할 수 있습니다.
GET : http://foo.co.kr/user/100 // 사용자의 정보 요청
POST : http://foo.co.kr/user // 사용자의 정보 생성
PUT : http://foo.co.kr/user // 사용자의 정보 생성 및 수정
DELETE : http://foo.co.kr/user/100 사용자의 정보 삭제
4. 애플리케이션 상태에 대한 엔진으로써 하이퍼미디어
REST API를 개발할 때 단순히 Client 요청에 대한 데이터만 응답 해주는 것이 아닌 관련된 리소스에 대한 Link 정보까지 같이 포함 되어져야 한다.
이러한 조건들을 잘 갖춘 경우 REST ful 하다고 표현하고, 이를 REST API라고 부릅니다.