2000년 Roy Fielding의 박사학위 논문에서 최초로 소개되었다.
HTTP를 기본으로 하여 서버에서 리소스에 대한 API를 제공하는 방법 중 하나이며, HTTP 통신으로 이루어지기때문에 웹 통신이 가능한 환경이라면 사용할 수 있는것이 장점이다.
서버의 리소스를 기준으로, HTTP Method를 통해 행위를 정의한다.
일반적인 웹 API 와 비교해보면 아래와 같다
회원정보 조회 | GET /member/getInfo?userid=foo | GET /member/foo |
회원정보 저장 | POST /member/saveMemberInfo | POST /member/foo |
회원 삭제 | POST /member/removeMember | DELETE /member/foo |
URI는 foo라는 회원을 지시하며, 실제적으로 처리할 동작은 HTTP method 로 표현한다.
위는 예시일 뿐이며, API에 대한 명확한 표준이 없기 때문에 제공하고자 하는 서비스(리소스)에 따라 적절한 방식으로 제공하게 된다.
리소스에 대해 인증 방법으로는 HTTP에서 기본적으로 사용되는 Cookie-Session 인증을 사용하거나, OAuth 방식이 널리 쓰인다.