API
Application Programming Interface
REST
- Representational State Transfer
- 인터넷 상의 시스템 간의 사호 운용성을 제공하는 방법 중 하나
- 웹을 깨뜨리지 않으면서 http를 진화시키는 방법
- 시스템 제각각의 독립적인 진화를 보장하기 위한 방법
- REST API : REST 아키텍처 스타일을 따르는 API
REST API 아키텍처 스타일
- Client-Server
- Stateless
- Cache
- Uniform Interface
- Layered System
- Code-onDemand(optional)
Uniform Interface
- Identification of resources
- manipulation of resources through represenations
- self-descrive messages
- hypermisa as the engine of appliaction state (HATEOAS)
self-descrive messages
- 메시지 스스로 메시지에 대한 설명이 가능해야 한다.
- 서버가 변해서 메시지가 변해도 클라이언트는 그 메시지를 보고 해석이 가능하다.
- 확장 가능한 커뮤니케이션
HATEOAS
- 하이퍼미디어(링크)를 통해 애플리케이션 상태 변화가 가능해야 한다.
- 링크 정보를 동적으로 바꿀 수 있다.
클라이언트와의 URL 정보에 대한 규약을 정하는 것이 아닌 JSON, XML...... 응답을 받은 다음다음 상태로 전이하기 위해서는 응답에 포함되어있는 하이퍼링크 정보를 사용해야 한다. (버저닝이 필요 없다.)
응답만을 보고 사용자가 판단할 수 있어야 한다. (문서를 볼 필요가 없다.)
옥에 티는 Content-Type이 rss 타입이 아니라는 것이다. (self descrive 하지 않다.)
- 응답을 해석할 수 없다면 profile 링크라도 주어야 한다.
HATEOAS는 충족한다. (링크가 있음)