PathVariable 또는 RequestParameter로 들어오는 도메인의 Id값은 도메인으로 변환받아서 파라미터로 받을 수 있다.
Converter는 하나의 타입을 다른 타입으로 변환해주는 것이다.(ex. Long -> entity)
DomainClassConverter에는 ToIdConverter
와 ToEntityConverter
가 있다.
따라서 Controller에서 findById로 repository에서 entity를 가져오는 절차가 자동으로 이루어질 수 있다.
아래의 두 코드는 같은 코드이다. 위의 코드가 DomainClassConverter에 의해 자동으로 id로 엔티티를 가져오는 코드이다.
Pageable / sort를 매개변수로 받아 바인딩 해준다.
sort도 넘겨줄 수 있다. 보통 Pageable로 sort까지 다룰 수 있다.
resource를 요청했을 때, resource와 관련이 있는 link 정보를 같이 보내준다.
Hateoas를 사용하려면 의존성을 넣어줘야한다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
PagedResourcesAssembler를 매개변수로 받아서 사용할 수 있다.
PagedResourcesAssembler의 타입으로 엔티티를 주고, 그 타입의 EntityModel을 만들어주는 것이다.
PagedResourcesAssembler의 toModel은 Page를 받는다. 따라서 아래의 코드를 합쳐 놓은 코드가 위의 코드이다.
이렇게 하면, 이전페이지의 링크, 다음페이지의 링크 등 페이지와 관련있는 link들을 다 받아온다.