UserResource에 POST 관련 URL을 작성합니다.
createUser() 추가package study.rest.webservices.restfulwebservices.user;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class UserResource {
private UserDaoService service;
public UserResource(UserDaoService service) {
this.service = service;
}
//GET /users
@GetMapping("/users")
public List<User> retrieveAllUsers() {
return service.findAll();
}
//GET /users/{id}
@GetMapping("/users/{id}")
public User retrieveUser(@PathVariable int id) {
return service.findOne(id);
}
//POST /users
@PostMapping("/users")
public void createUser(@RequestBody User user) {
service.save(user);
}
}
현재는 데이터베이스를 사용하지 않아 id값을 usersCount를 사용해서 카운트합니다.
save() 추가package study.rest.webservices.restfulwebservices.user;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
@Component
public class UserDaoService {
private static List<User> users = new ArrayList<>();
private static Integer usersCount = 0;
static {
users.add(new User(++usersCount, "김철수", LocalDate.now().minusYears(30)));
users.add(new User(++usersCount, "문상훈", LocalDate.now().minusYears(25)));
users.add(new User(++usersCount, "선우소희", LocalDate.now().minusYears(20)));
}
public List<User> findAll() {
return users;
}
public User save(User user) {
user.setId(++usersCount);
users.add(user);
return user;
}
public User findOne(int id) {
Predicate<? super User> predicate = user -> user.getId().equals(id);
return users.stream().filter(predicate).findFirst().get();
}
}
Postman을 사용해서 데이터를 추가하겠습니다.


요청이 save()를 타고 제대로 작동하였습니다.