bepoz-study-diary.tistory.com/197
HATEOAS를 적용하기 위해 EventResource를 이용해 보겠다.
앞서서 HATEOAS 1.0.2 이후로
ResourceSupport => RepresentaionModel
Resource => EntityModel Resources => CollectionModel PagedResources => PagedModel 와 같이 이용하면 된다.
RepresentationModel를 상속받는 클래스를 하나 만들어준다.
생성자와 getter를 하나 만들어 준 상태이다.
@JsonUnwrapped와 주석처리한 코드는 차후에 설명하겠다.
|
|
eventDto 클래스를 통해 Event에 주입을 하는데 modelMapper를 이용해서 집어 넣어주었다.
import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder;
WebMvcLinkBuilder 를 통해 링크를 생성한다.
linkTo(EventController.class).slash(newEvent.getId());
는 해당 매핑되어있는 url에 slash(newEvent.getId()) 는 url 에 /newEvent의 id value 를 추가해준 것이다.
해당을 uri 타입으로 바꾼 후에 return 값의 ResponseEntity 의 created에 넣어주었다.
EventResource eventResource = new EventResource(event); 로 event값을 넣은 eventResource를 생성해주고
이곳에 기본 EventController.class의 매핑 url을 "query-events" ㅇ라는 이름을 붙여서 추가하고
위에서 생성해준 linkBuilder를 "self"로 넣고, 동일한 링크를 "update-event"를 붙여서 넣어준 후
body 값에 집어넣었다.
앞서 말한 @JsonUnwrapped 어노테이션이 없다면
다음과 같이 event안에 묶여 나오는데, 어노테이션을 추가하게 되면
다음과 같이 어노테이션 말그대로 unwrapped 되어 나오게된다.
|
|
아까 주석 부분은 위의 'self' 로 집어 넣은 것을 생성자 부분에서 만들어주게 한 것이다.
'Spring' 카테고리의 다른 글
[Spring] HATEOAS에 대해 (0) | 2020.09.27 |
---|---|
[Spring] Rest Docs 이용해보기 (0) | 2020.09.21 |
[Spring] Errors Serializer 만들기 (0) | 2020.09.18 |
[Spring] @Autowired 생성자 주입방법에 대해서 (0) | 2020.09.18 |
[Spring] ResponseEntity에 대해서 (0) | 2020.09.18 |