REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻함.
REST는 Representational State Transfer의 줄임말
로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 하는 배경이 있음.
사용자 또는 클라이언트, 그리고 사용자와 클라이언트가 얻으려 하는 리소스 사이의 조정자로 생각하면 됨. API는 조직이 보안 및 제어를 유지관리(누가 무엇에 액세스할 수 있는지 결정)하면서 리소스와 정보를 공유할 수 있는 방법이기도 함.
컴퓨터나 시스템과 상호 작용하여 정보를 검색하거나 기능을 수행하고자 할 때 API는 사용자가 원하는 것을 시스템에 전달할 수 있게 지원하여 시스템이 이 요청을 이해하고 이행하도록 할 수 있음.
애플리케이션 소프트웨어를 구축하고 통합하는 정의 및 프로토콜 세트
때때로 API는 정보 제공자와 정보 사용자 간의 계약으로 지칭되며 소비자에게 필요한 콘텐츠(호출)와 생산자에게 필요한 콘텐츠(응답)를 구성함.
장점 - 리소스 검색 방법 또는 리소스의 출처에 대한 지식 없이도 사용이 가능함.
자원(RESOURCE) - URI
행위(Verb) - HTTP METHOD
표현(Representations)
첫 번째, URI는 정보의 자원을 표현해야 한다.
리소스 명은 행위나 동사보다는 명사를 사용함.
GET /members/delete/1
위와 같은 방식은 REST를 제대로 적용하지 않은 URI임. URI는 자원을 표현하는데 중점을 두어야 함. delete와 같은 행위에 대한 표현이 들어가서는 안됨.
두 번째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
위의 잘못 된 URI를 HTTP Method를 통해 수정해 보면,
DELETE /members/1
으로 수정할 수 있음. 회원정보를 가져올 때는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용하여 표현함.
METHOD : 역할
POST : 해당 URI를 요청하면 리소스를 생성함.
GET : 해당 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져옴.
PUT : 해당 리소스를 수정함.
DELETE : 리소스를 삭제함.