실습

HATEOAS 란?

  • HATEOAS (Hypertext as the Engine of Application State) = 애플리케이션 상태의 엔진으로서의 하이퍼텍스트

  • 쉽게 말해, API에서 클라이언트가 다음 단계들에 대해 알 수 있게, 안내를 포함하여야 한다는 의미.

    • 예를 들어, getAccountBalance로 계좌에 금액을 받아왔을때, 그 이후에 할 수 있는 작업들 (depositMoney, withdrawMoney) 에 대한 링크 정보도 같이 제공한다.

  • 장점

    • 클라이언트에게 영향을 미치지 않고, URI 체계 변경 가능. 즉, API 업데이트시 유연하게 변경 가능

    • API를 사용하는 다른 개발자들에게 더 나은 개발 경험을 제공

  • URI 생성을 위해 HATEOAS에서 제공되는 3가지 추상화

    • RepresentationModel

    • Link

    • WebMvcLinkBuilder

  • 모델 4 가지

    • RepresentationModel

    • CollectionModel

    • EntityModel

    • PagedModel

  • 용어

    • Resource: API로 부터 넘어온 링크 정보를 포함한 정보를 포괄하여 리소스라고 칭한다.

종속성 추가

스프링 부트 아닐시

실습

  • linkTo()와 methodOn()는 hateoas 라이브러리에서 제공한다

  • CollectionModel은 HAL 리턴 타입을 준수한다

응답 결과

위 API의 getAllCustomers() 를 호출했을때 응답

API의 getOrdersForCustomer() 를 사용했을때 응답

유투브 자료

HATEOAS를 이용해, 어떻게 API를 유연하게 만들수 있는지 보여준다.

기존 클래스를 교체하다가

참고자료

  • https://www.baeldung.com/spring-hateoas-tutorial

Last updated