반응형
이전 포스팅에서
https://halfstorage.tistory.com/61
EntityModel.of(employee,
linkTo(methodOn(EmployeeController.class).one(employee.getId())).withSelfRel(),
linkTo(methodOn(EmployeeController.class).all()).withRel("employees"));
링크를 추가하는 부분이 중복적으로 사용되면 assembler로 선언하여 사용할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Component
public class EmployeeModelAssembler implements
RepresentationModelAssembler<Employee, EntityModel<Employee>> {
@Override
public EntityModel<Employee> toModel(Employee employee) {
return EntityModel.of(employee,
linkTo(methodOn(EmployeeController.class).one(employee.getId())).withSelfRel(),
linkTo(methodOn(EmployeeController.class).all()).withRel("employees"));
}
}
|
이전 버전에 사용되던 ModelProcessor도 사용할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
|
@Component
public class EmployeeModelProcessor implements RepresentationModelProcessor<EntityModel<Employee>> {
@Override
public EntityModel<Employee> process(EntityModel<Employee> model) {
model.add(Link.of("/employees/{id}").withRel(LinkRelation.of("employees"))
.expand(Objects.requireNonNull(model.getContent()).getId()));
return model;
}
}
|
다만, 프로세스를 사용할 때는 해당 링크를 직접 입력했었는데, 현재 버전에서 어셈블러로 사용 시에는 해당 클래스의
메서드를 호출하여 추가할 수 있습니다.
반응형
'- Spring' 카테고리의 다른 글
[lombok] Constructor (0) | 2020.10.25 |
---|---|
[ERROR] Error creating bean with name 'repositoryController' / At least one JPA metamodel must be present! (2) | 2020.10.16 |
[Spring Hateoas 1.2] HTTP Method에 헤이토스 적용 (0) | 2020.08.27 |
[Spring Hateoas 1.2] RepresentationModel 테스트 (0) | 2020.08.24 |
[Spring Hateoas 1.2] 소개 및 프로젝트 설정 (0) | 2020.08.21 |