강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của bbmgom3714
bbmgom3714

câu hỏi đã được viết

[Phiên bản sửa đổi 2023-11-27] Phát triển RESTful Web Services bằng Spring Boot 3.x

Xem chi tiết một người dùng sử dụng JPA - HTTP Get method

Resource HateOAS

Viết

·

392

1

 

Resource 부분에서 HateOAS가 보이지 않는데 어떤 오류일까요..?

 

POM.xml 에는 정상적으로 등록되어 있습니다..

 

spring-bootrest-api

Câu trả lời 3

4

저는 스프링부트 2.4.12를 사용하고 있고, 처음에 Hateos 관련 클래스를 불러올 때 작성자님과 동일하게 고민했어서 도움이 되시길 바래서 강사님은 아니지만, 댓글 남깁니다.

Hateoas는 버전에 따라 사용하는 방법이 다르다고 알고있습니다. 
제 코드입니다.

@GetMapping("/users/{id}")
    public EntityModel<User> retrieveUser(@PathVariable int id){
        Optional<User> user = userRepository.findById(id);

        if(!user.isPresent()) {
            throw new UserNotFoundException(String.format("ID[%S] not found", id));
        }

        EntityModel<User> userModel = new EntityModel<>(user.get());
        WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers());
        userModel.add(linkTo.withRel("all-users"));

        return userModel;
    }



제가 작성할 때 참고한 사이트는 다음과 같습니다. https://jeonghoon.netlify.app/Spring/SpringBoot13-hateoas/ 
해결이 안되셨다면 참고하시면 좋을 것 같아요!

3

버전문제로 이전강의 때 수정했던 내용 참조하여 아래와 같이 만들었습니다.

@GetMapping("/users/{id}")

public EntityModel<User> retrieveUser(@PathVariable int id) {

Optional<User> user = userRepository.findById(id);

if (!user.isPresent()) {

throw new UserNotFoundException(String.format("ID[%s] not found", id));

}

EntityModel<User> model = EntityModel.of(user.get());

WebMvcLinkBuilder linkTo = WebMvcLinkBuilder.linkTo(WebMvcLinkBuilder.methodOn(this.getClass()).retrieveAllUsers());

model.add(linkTo.withRel("all-users"));

return model;

}

0

bbmgom님의 프로필 이미지
bbmgom
Người đặt câu hỏi

이것도 스프링 버전의 문제일까요? 현재 사용하는 스프링은 2.5.5 입니다.

Hình ảnh hồ sơ của bbmgom3714
bbmgom3714

câu hỏi đã được viết

Đặt câu hỏi