본문 바로가기

Spring/Spring Framework

Rest API

반응형

Rest API

Application Programmin Interface

Rest

  • REpressentational Statte Transfer
  • 인터넷 상의 시스템 간의 상호 운용성(interoperability)을 제공하는 방법중 하나
  • 시스템 제각각의 독립적인 진화를 보장하기 위한 방법
  • REST API: REST 아키텍처 스타일을 따르는 API

그런 REST API로 괜찮은가

https://www.youtube.com/watch?v=RP_f5dMoHFc

 

REST 아키텍처 스타일

  • Client-Server
  • Stateless
  • Cache
  • Uniform Interface
  • Layered System (http를 사용하면)
  • Code-On-Demand (optional) (http를 사용하면)

 

Uniform Interface (발표 영상 11분 40초)

  • Identification of resources
  • manipulation of resources through represenations
  • self-descrive messages
  • hypermisa as the engine of appliaction state (HATEOAS)

RestAPI 의 중요한 아키텍쳐인 Uniform Interface를 따라야하고 있지 않다면 Rest API라 할 수 없다.

특히 그 중에서도 self-descriptive messages, hypermisa as the engine of appliaction state (HATEOAS) 만족해야 한다.

 

Self-descriptive message

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

HATEOAS

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

 

위와 같이 클라이언트는 url을 몰라도 milestone.url로 접근하여 확인 가능

 

Self-descriptive message 해결 방법 (문서에 대한 링크를 본문에)

  • 방법 1: 미디어 타입을 정의하고 IANA에 등록하고 그 미디어 타입을 리소스 리턴할 때 Content-Type으로 사용한다.

HATEOAS 해결 방법 

  • 방법1: 데이터에 링크 제공
    - 링크를 어떻게 정의할 것인가? HAL
  • 방법2: 링크 헤더나 Location을 제공

 

반응형

'Spring > Spring Framework' 카테고리의 다른 글

Restful API  (0) 2020.11.06
다국어 처리하기  (0) 2020.03.07
Spring Task  (0) 2019.10.04
Spring Scheduling  (0) 2019.09.27
IoC  (0) 2019.09.21