User Service Api 구현

매니·2022년 9월 6일
0

Restful-Web-Service

목록 보기
2/4
post-thumbnail

첫 면접 당시, Restful 에 대해서 이해했다고 생각했지만 직접 코드를 짜려니 나는 이해하지 못하고 있었던 것이었다.
그래서 Restful을 이해하기위해 스프링 부트를 활용해서 작업을 해보려고한다

User Service Api 구현

User 도메인 클래스 생성

유저라는 패키지를 만들어주고 거기안에 클래스를 생성해준다.

@Data // lombok를 통해 생성자를 생성해주지 않아도 괜찮다.
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Date joinDate;
}

User 안에 필드를 정의해준다.

  • lombok 를 이용해서 생성자, getter, setter 를 생성해주지 않아도 알아서 생성이 된다.

DAOService

@Service // 어노테이션 지정
public class UserDAOService {
    private static List<User> users = new ArrayList<>();

    private static int usersCount = 3;

    static {
        users.add(new User(1, "dowoon", new Date()));
        users.add(new User(2, "Alice", new Date()));
        users.add(new User(3, "dElena", new Date()));
    }
    
	public User save(User user) { // 등록
        if(user.getId() == null) { // ID의 값이 존재하지 않으면 ID 값을 넣어준다.
            user.setId(++usersCount);
        }

        users.add(user);
        return user;
    }
    
    public List<User> findAll() { // 전체 사용자 조회
        return users;
    }
    
    public User findOne(int id) { // 개별 사용자 조회
        for (User user : users) {
            if ( user.getId() == id ) {
                return user;
            }
        }
        return null;
    }
}

아직 DB연동이 되어있지 않으므로 임시적으로 데이터를 JSON 형태로 넣어준다.

UserController

UserController을 작성해준다.

@RestController
public class UserController {
    private UserDAOService service;

    public UserController(UserDAOService service) {
        this.service = service;
    }

    @GetMapping("/users")
    public List<User> retrieveAllUsers() {
        return service.findAll();
    }

    // GET /users/1 or /users/10 -> String -> int 매핑된다.
    @GetMapping("/users/{id}")
    public User retrieveUser(@PathVariable int id) {
        return  service.findOne(id);
    }

    @PostMapping("/users")
    public  void createUser(@RequestBody User user) {
        User savedUser = service.save(user);
    }
}
  • GET매핑을 이용해서 users로 들어가면 전체 목록 조회
  • @PathVariable 를 이용해서 id를 uri에 보내고 GET매핑을 이용해서 개별 사용자 조회
  • Post매핑을 사용해서 JSON 형태로 user 등록

결과

  • 전체 사용자 조회

  • 개별 사용자 조회

  • 등록

New User 가 추가가 된것을 확인할 수 있다.


알게된점

  • /users/{id} 를 이용해서 조회가 가능하다.
  • id를 임의로 넣어줄 수 있다.
profile
성장중 🔥

0개의 댓글

관련 채용 정보