반응형
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 할 필요 없이!)
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 |