REST API

REST API란?

  • 핵심 컨텐츠 및 기능을 외부 사이트에서 활용할 수 있도록 제공되는 인터페이스
  • 예를 들어, 우체국에서 우편번호를 조회할 수 있는 기능을 제공하거나, 구글에서 구글 지도를 사용할 수 잇도록 제공하는 것
  • 웹 브라우저 뿐만 아니라 앱 등 다양한 클라이언트가 등장하면서 그러한 클라이언트들에게 대응하기 위해 REST API가 널리 사용되기 시작
  • REST API를 조합해 어플리케이션을 만들 수 있는데 이를 매시업(Mashup)이라고 한다

REST API 스타일

  • client-server, stateless, cache, uniform interface, layered system, code-on-demand
  • HTTP 프로토콜을 사용한다면 거의 모두 쉽게 구현 가능
  • uniform interface가 하기 어렵다. 첫 번째와 두 번째는 어렵지 않지만 세 번째와 네 번째는 어렵다.
    • 리소스가 URI로 식별되어야 한다
    • 리소스를 생성, 수정, 추가하고자 할 때 HTTP 메세지에 표현을 해서 전송해야 한다
    • 메세지는 스스로 설명할 수 있어야 한다
    • 어플리케이션의 상태는 Hyperlink를 이용해 전이되어야 한다(HATEOAS)
  • REST의 uniform interface를 지원하는 것은 쉽지 않기 때문에 많은 서비스들이 REST에서 바라는 것을 모두 지원하지 않고 API를 만들게 된다
  • REST의 모든 것을 제공하지 않으면서 REST API라고 말하는 경우도 있고 WEB API, HTTP API라고 부르는 경우가 있다.