심플하게 만들기 위해 Service Layer 없이 Controller만 생성해서 CRUD API를 만들 것이다.
@RestController @RequestMapping("users") public class UserController { private UserDocumentRepository userDocumentRepository; public UserController(UserDocumentRepository userDocumentRepository) { this.userDocumentRepository = userDocumentRepository; } @PostMapping() public UserDocument createUser() { } }
public class UserCreateRequestDto { private String id; private String name; private Long age; private Boolean isActive; public String getId() { return id; } public String getName() { return name; } public Long getAge() { return age; } public Boolean getIsActive() { return isActive; } }
getIsActive()라고 지어주자. @RestController @RequestMapping("users") public class UserController { private UserDocumentRepository userDocumentRepository; public UserController(UserDocumentRepository userDocumentRepository) { this.userDocumentRepository = userDocumentRepository; } @PostMapping() public UserDocument createUser(@RequestBody UserCreateRequestDto requestDto) { UserDocument user = new UserDocument(requestDto.getId(), requestDto.getName(), requestDto.getAge(), requestDto.getIsActive()); return userDocumentRepository.save(user); } }
{ "id": "1", "name": "Jaeseong", "age": 20, "isActive": true }

{ "id": "2", "name": "JSCODE", "age": 25, "isActive": false }

@RestController @RequestMapping("users") public class UserController { private UserDocumentRepository userDocumentRepository; public UserController(UserDocumentRepository userDocumentRepository) { this.userDocumentRepository = userDocumentRepository; } @PostMapping() public UserDocument createUser(@RequestBody UserCreateRequestDto requestDto) { UserDocument user = new UserDocument(requestDto.getId(), requestDto.getName(), requestDto.getAge(), requestDto.getIsActive()); return userDocumentRepository.save(user); } @GetMapping() public Page<UserDocument> findUsers() { return userDocumentRepository.findAll(PageRequest.of(0, 10)); } @GetMapping("/{id}") public UserDocument findUserById(@PathVariable String id) { return userDocumentRepository.findById(id) .orElseThrow(() -> new RuntimeException("존재하지 않는 사용자입니다.")); } }
GET localhost:8080/users
GET localhost:8080/users/1
GET localhost:8080/users/2 
public class UserUpdateRequestDto { private String name; private Long age; private Boolean isActive; public String getName() { return name; } public Long getAge() { return age; } public Boolean getIsActive() { return isActive; } }
getIsActive()라고 지어주자. @RestController @RequestMapping("users") public class UserController { private UserDocumentRepository userDocumentRepository; public UserController(UserDocumentRepository userDocumentRepository) { this.userDocumentRepository = userDocumentRepository; } ... @PutMapping("/{id}") public UserDocument updateUser(@PathVariable String id, @RequestBody UserUpdateRequestDto requestDto) { UserDocument existingUser = userDocumentRepository.findById(id) .orElseThrow(() -> new RuntimeException("존재하지 않는 사용자입니다.")); existingUser.setAge(requestDto.getAge()); existingUser.setName(requestDto.getName()); existingUser.setIsActive(requestDto.getIsActive()); return userDocumentRepository.save(existingUser); } }


@RestController @RequestMapping("users") public class UserController { private UserDocumentRepository userDocumentRepository; public UserController(UserDocumentRepository userDocumentRepository) { this.userDocumentRepository = userDocumentRepository; } ... @DeleteMapping("/{id}") public void deleteUser(@PathVariable String id) { UserDocument user = userDocumentRepository.findById(id) .orElseThrow(() -> new RuntimeException("존재하지 않는 사용자입니다.")); userDocumentRepository.delete(user); } }

