인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

highjune님의 프로필 이미지
highjune

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

Level3 단계의 REST API 구현을 위한 HATEOAS 적용

spring boot버전...ㅠㅠ

작성

·

310

0

안녕하세요

매번 친절한 답변 감사합니다.

저는 spring boot 2.3.1 버전인데 어느 코딩에 맞춰서 하면 될까요?ㅠㅠ

강의 제일 처음에 혹시 버전을 맞추는 것이 있었나요??...ㅠ

부트 최신버전이 2.3.1인 것 같습니다..

답변 3

0

@RestController
@Data
public class UserController {

0

for 2.2 version

소스에서 UserController() 클레스에서  @Data  어노테이션으로 생성자를 써서  내부 클레스를 사용함.  ( spring boot version ; 2.2.11 )

//User.java
//@JsonFilter("UserInfo")
public class User {
private Integer id;
@Size(min=2, message = "Name 2글자 이상 입력해주세요.")
private String name;
@Past
private Date joinDate;
private String password;
private String ssn;
}


//UserController.java
//
GET / users/1 or users/10 -- String
@GetMapping("/users/{id}")
public EntityModel<User> retrieveUser(@PathVariable int id) {
User user = service.findOne(id);

if ( user == null ){
throw new UserNotFoundException(String.format("ID[%s] not found ",id));
}
// hateoas
// "all-users", SERVER_PATH + "/users"
// ret
EntityModel<User> model = new EntityModel<>(user);
WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers());

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

return model;
}
// 결과
{
  "id"1,
  "name""Kenneth",
  "joinDate""2020-11-26T10:40:55.183+0000",
    "password""pass1",
    "ssn""780702-1111111",
    "links": [
     {
      "rel""all-users",
      "href""http://localhost:8088/users"
     }
    ]
}

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

스프링 부트의 버전을 최신것으로 설정해서 프로젝트를 생성하신 경우에는 HATEOAS 관련 부분의 기능 외에는 크게 문제 될 것 없을 것 같습니다. 

HATEOS 관련 레퍼런스 추가 시, 아래와 같이 2.2버전에 맞춰 진행하시면 될 것 같습니다.

감사합니다.

highjune님의 프로필 이미지
highjune

작성한 질문수

질문하기