본문 바로가기

Spring/Rest API

(REST API) REST API란?

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 

  1. 메시지 스스로 메시지에 대한 설명이 가능해야 한다.
  2. 서버가 변해서 메시지가 변해도 클라이언트는 그 메시지를 보고 해석이 가능하다.
  3. 확장 가능한 커뮤니케이션

HATEOAS

  1. 하이퍼미디어(링크)를 통해 애플리케이션 상태 변화가 가능해야 한다. 
  2. 링크 정보를 동적으로 바꿀 수 있다. 

클라이언트와의 URL 정보에 대한 규약을 정하는 것이 아닌 JSON, XML...... 응답을 받은 다음다음 상태로 전이하기 위해서는 응답에 포함되어있는 하이퍼링크 정보를 사용해야 한다. (버저닝이 필요 없다.)

 

응답만을 보고 사용자가 판단할 수 있어야 한다. (문서를 볼 필요가 없다.)

 

네이버의 검색 REST API

옥에 티는 Content-Type이 rss 타입이 아니라는 것이다. (self descrive 하지 않다.)

  • 응답을 해석할 수 없다면 profile 링크라도 주어야 한다.

HATEOAS는 충족한다. (링크가 있음)