-
REST, REST APISpring 2019. 11. 4. 00:00
REST와 REST API에 대한 강연 내용을 복습차원에서 요약했습니다.
#REST
분산 하이퍼미디어 시스템(ex>웹)을 위한 아키텍쳐 스타일
* 아키텍쳐 스타일 - 제약조건의 집합제약조건
- CLIENT - SERVER
- STATELESS
- CACHE
- UNIFORM INTERFACE
- SELF-DESCRIPTIVE MESSAGES
- HATEOAS (hypermedia as the engine of application state)
- LAYERED SYSTEM
- CODE-ON-DEMAND
다른제약조건들은 대부분 지켜지지만 4번째 (uniform interface) 는 잘 지켜지지 않고 있다고 합니다.
그 중에서도 self-descriptive messages 와 HATEOAS 가 잘 지켜지지 않는다고 합니다.
## self-descriptvie message
메시지는 스스로 설명해야 한다 (메시지만 봐도 해석이 가능해야 한다는 의미)
JSON의 경우 key-value 형태를 json format으로 보내는데, 해당 메시지만 봐서는 key가 어떤의미인지 알 수가 없다. 해당 스펙에 대한 정의를 Link 또는 미디어타입에 명시하고 IANA에 해당 미디어 타입을 등록하는 방식을 적용할 필요가 있다. (엄밀한 기준을 지키기 위해서는)
## HAETOAS
애플리케이션 상태는 하이퍼링크를 이용해 전이되어야 한다.
## 왜 UNIFORM INTERFACE를 지켜야 하는건가?
서버와 클라이언트의 독립적인 진화를 위해서 필요하다. 서버의 기능이 변경된다고 해서 클라이언트를 업데이트 할 필요가 없도록 하기 위함.
웹페이지가 변경됐다고 해서 웹브라우저(IE, 크롬, 사파리 등)를 업데이트 해야하진 않는다.
#REST API
위에서 제시한 6가지의 제약조건들을 지킨 것을 REST API라고 합니다.
사실상 오늘날 대부분의 REST API는 REST의 제약조건 모두를 충족하고 있진 않다고 합니다. (특히 self-descriptive message, HATEOAS)
하지만, 모든조건을 따를것인지에 대해서는 설계자의 몫.'Spring' 카테고리의 다른 글
ChainedTransactionManager (0) 2021.03.09 spring-data-redis 테스트 (local, remote 테스트) (0) 2019.10.28