SMALL

Hateoas에 대한 정의 

REST API에 대한 정의 

Hateoas 사용 예시


Hateoas에 대한 정의 

Hypermedia As The Engine Of Application State의 약자로, 기본적인 아이디어는 

하이퍼미디어를 애플리케이션의 상태를 관리하기 위한 메커니즘으로 사용한다는 것입니다.

 

위의 정의 내용을 이해하고, 구글링을 하다 보면 보이는 정의 내용을 다시 보면 조금은 더 이해하는데 도움이 된다.

Hateoas란 REST Api를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하도록 하는 것을 의미합니다. 이러한 방법은 클라이언트가 서버로부터 어떠한 요청을 할 때, 요청에 필요한 URI를 응답에 포함시켜 반환하는 것으로 가능하게 할 수 있습니다.

 

REST API에 대한 정의 

Hateoas는 REST API를 잘 설계하기 위해 나온 개념이다. 그렇다면 REST API는 무엇인가 간단히 알아보자.

REST API는 Representational State Transfer API의 약자로,

“웹 애플리케이션이 제공하는 각각의 데이터를 리소스, 즉 자원으로 간주하고 각각의 자원에 고유한 URI(Uniform Resource Identifier)를 할당함으로써 이를 표현하는 API를 정의하기 위한 소프트웨어 아키텍처 스타일이다.

 

잘 설계된 REST API를 구현하기 위한 단계가 존재하는데 , 그 마지막 단계가

Hypermedia Controls (하이퍼미디어 컨트롤) - HATEOAS라는 개념을 통해, 자원에 호출 가능한 API 정보를 자원의 상태를 반영하여 표현하는것이다.

(자세한 구현 단계에 대한 설명은 다른 포스팅을 통해서 소개하도록 하겠습니다)

REST 구현 단계 ( 출처 : https://images.app.goo.gl/tp6yVbK2Lrs16dcB8)
REST API 구현 단계별 예시 (출처 : https://grapeup.com/blog/how-to-build-hypermedia-api-with-spring-hateoas/)

Hateoas 사용 예시

이제 대략적으로 Hateoas, REST API가 무엇인지 알았으니, 해당 개념에 대한 예제를 보고 더욱 구체적으로 이해해 보자.

 

계좌번호가 "12345"인 계좌의 정보를 조희 하는 경우에 해당 계좌의 상태 ( 잔여 금액 등등..)에 따라 접근 가능한 추가 API들이 LINKS라는 이름으로 제공된다.

 

기존의 전형적인 REST API 응답

 

Hateoas가 적용된 응답 ( URI 정보를 응답에 추가)

위와 같이 Hateoas를 사용하게 되면 누릴 수 있는 장점은 아래와 같다 

  • Client 사이드에서는 "rel"의 이름으로 요청 URI를 사용하기 때문에 URI 수정이 발생하더라도 Client 사이드는 수정이 이루어지지 않는다. 

 

LIST

+ Recent posts