이번에는 user를 추가하는 REST API를 만들 것이다.
@RestController
public class UserResource {
//SAME_OLD_CODE
//POST /users
@PostMapping("/users")
public void createUser(@RequestBody User user) {
service.save(user);
}
}
메서드 파라미터를, web request의 body와 bind시키라는 어노테이션. (@ResponseBody
와 반대)
web request를 서버로 보낼 때, request body와 함께 보내는데, 이때 request body에 User user;
즉, 사용자의 정보를 담는다!
클라이언트가 REST API 설계원칙에 의해 createUser를 할 때, POST 메서드로 /users url과 매핑된 CreateUser함수를 만들 것.
해당 함수는 클라이언트 → 서버로 request를 보낼 때, 추가한 사용자 정보를 request web body에 담기 위해 @RequestBody
를 이용해 User user와 request body에 매핑.
그러면, 서버가 받은 request에는 User정보가 (스프링에 의해 자동변환된) JSON 형태로 존재한다. 그렇다면 서버는 받은 User 정보를 add하기 위해, 메서드의 기능을 마저 채우면 된다
→ 그렇게 채운 메서드 기능이 service.save(user)
다
@Component
public class UserDaoService {
// JPA/Hibernate > Database
// UserDaoService > Static List
private static List<User> users = new ArrayList<>();
private static int usersCount = 0;
static {
users.add(new User(++usersCount, "minjiki1", LocalDate.now().minusYears(30)));
users.add(new User(++usersCount, "minjiki2", LocalDate.now().minusYears(25)));
users.add(new User(++usersCount, "minjiki3", LocalDate.now().minusYears(20)));
}
public User save(User user) {
user.setId(++usersCount);
users.add(user);
return user;
}
//SAME_OLD_CODE
}
POST /users를 보내기 위해, REST API client가 필요하다. 이에, 간단한 REST API client인 Talend API Tester를 사용했다!
또한 localhost:8080/users URL에 들어가면, 새로운 유저가 잘 생성된 것을 확인할 수 있었다!
이 시리즈는 Udemy 강의의 내용을 정리한 것입니다.
https://www.udemy.com/course/spring-boot-and-spring-framework-korean/