REST API의 REST는 “Representational State Transfer” 의 약자이다.
REST는 HTTP를 잘 활용하기 위한 원칙이고, 이 원칙을 잘 지킨 API를 RESTful한 API 즉, REST API라고 말한다.
REST API는 HTTP 프로토콜을 통해 요청과 응답을 정의하고, 웹에서 사용되는 자원이나 데이터를 HTTP URI로 표현한다.
RMM(Richardson Maturity Model)은 REST API의 적합성 정도를 나타내는 4단계 척도이다.
- 단순히 HTTP 프로토콜을 사용한다.
- 전체 어플리케이션에 대해 하나의 URI만 노출한다.
- 데이터를 가져오는 것을 포함하여 모든 요청 작업에 POST 메소드를 사용한다.
- 개별 리소스와의 통신을 준수하고 다중 URI를 사용한다. 따라서 모든 리소스는 고유한 URI로 식별될 수 있다.
- 여전히 데이터를 가져오는 것을 포함하여 모든 요청 작업에 POST 메소드를 사용한다.
- GET, POST, PUT 및 DELETE와 같은 모든 HTTP 명령 또는 동사를 완전히 활용한다.
- HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용한다.
- 3단계의 요청은 2단계와 동일하지만, 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성해야 한다.
Open API는 누구에게나 공개된 API이다.
누구에게나 공개된 것은 맞지만 가격이나 정보 등의 제한이 있을 수 있다.
또한 API를 사용하기 위해서는 API Key가 필요하다. API 제공자에게 Key를 받으면 데이터를 요청할 때 Key를 같이 전달해야 원하는 응답을 받을 수 있다.
API, HTTP API, REST API 차이
DEVOPEDIA - Richardson Maturity Model. Source: Sandoval. 2018.