심플하게 만들기 위해 Service Layer 없이 Controller만 생성해서 CRUD API를 만들 것이다.

✅ 사용자 생성 API 만들기

  1. Controller 틀 만들기

    @RestController
    @RequestMapping("users")
    public class UserController {
      private UserDocumentRepository userDocumentRepository;
    
      public UserController(UserDocumentRepository userDocumentRepository) {
        this.userDocumentRepository = userDocumentRepository;
      }
    
      @PostMapping()
      public UserDocument createUser() {
      }
    }
    
    
  2. Request DTO 만들기

    UserCreateRequestDto

    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;
      }
    }
    
  3. Controller 완성하기

    @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);**
      }
    }
    
    
  4. Postman으로 테스트해보기

    {
        "id": "1",
        "name": "Jaeseong",
        "age": 20,
        "isActive": true
    }
    

    image.png

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

image.png

✅ 사용자 조회 API 만들기

  1. Controller 만들기

    @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("존재하지 않는 사용자입니다."));
      }**
    }
    
    
  2. Postman으로 테스트해보기

    GET localhost:8080/users

    image.png

    GET localhost:8080/users/1

    image.png

    GET localhost:8080/users/2

    image.png

✅ 사용자 정보 수정 API 만들기

  1. Request DTO 만들기

    UserUpdateRequestDto

    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;
      }
    }
    
  2. Controller 완성하기

    @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);
      }**
    }
    
    
  3. Postman으로 테스트해보기

    image.png

    image.png

✅ 사용자 삭제 API 만들기