diff --git a/restful-web-service/pom.xml b/restful-web-service/pom.xml
index 0d77fad6..8e452e7d 100644
--- a/restful-web-service/pom.xml
+++ b/restful-web-service/pom.xml
@@ -31,7 +31,10 @@
org.springframework.boot
spring-boot-starter-validation
-
+
+ org.springframework.boot
+ spring-boot-starter-hateoas
+
org.springframework.boot
diff --git a/restful-web-service/src/main/java/com/example/restfulwebservice/user/User.java b/restful-web-service/src/main/java/com/example/restfulwebservice/user/User.java
index 776cf364..36af6691 100644
--- a/restful-web-service/src/main/java/com/example/restfulwebservice/user/User.java
+++ b/restful-web-service/src/main/java/com/example/restfulwebservice/user/User.java
@@ -14,7 +14,7 @@ import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
-@JsonFilter("UserInfo")
+//@JsonFilter("UserInfo")
public class User {
private Integer id;
@Size(min = 2, message = "Name은 2글자 이상 입력해 주세요.")
diff --git a/restful-web-service/src/main/java/com/example/restfulwebservice/user/UserController.java b/restful-web-service/src/main/java/com/example/restfulwebservice/user/UserController.java
index 179c6354..4b554ace 100644
--- a/restful-web-service/src/main/java/com/example/restfulwebservice/user/UserController.java
+++ b/restful-web-service/src/main/java/com/example/restfulwebservice/user/UserController.java
@@ -2,6 +2,8 @@ package com.example.restfulwebservice.user;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
+import org.springframework.hateoas.EntityModel;
+import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
@@ -11,6 +13,9 @@ import java.net.URI;
import java.util.List;
import java.util.Locale;
+import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
+import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;
+
@RestController
public class UserController {
private final UserDaoService userDaoService;
@@ -27,14 +32,18 @@ public class UserController {
}
@GetMapping("/users/{id}")
- public User retrieveUser(@PathVariable int id) {
+ public EntityModel retrieveUser(@PathVariable int id) {
User user = userDaoService.findOne(id);
if (user == null) {
throw new UserNotFoundException(String.format("ID[%s] not found", id));
}
- return user;
+ EntityModel entityModel = new EntityModel<>(user);
+ WebMvcLinkBuilder linkTo = linkTo(methodOn(this.getClass()).retrieveAllUsers());
+ entityModel.add(linkTo.withRel("all-users"));
+
+ return entityModel;
}
@PostMapping("/users")