간단한 Restful API 만들고 테스트 코드 작성
User 에 대하여 RESTful API를 만들어본다.
User 객체.
@Data
public class User {
private Long id;
private String name;
private Integer age;
}어 ? @Data 저거는 뭐지? 하는 분들을 위해 lombok 이라는 라이브러리를 간단하게 설명드린다.
lombok 은 java에서 객체를 만들때 getter , setter 코드를 컴파일 단계에서 자동으로 만들어주는 라이브러리다. 이놈 없이도 개발 가능하지만 getter, setter 만 만들다가 중도에 포기할수도 있다.
pom.xml 에 추가한다.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>Controller 작성
@RestController
@RequestMapping(value = "/users")
public class UserController {
static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
@GetMapping("/")
public List<User> getUserList() {
List<User> r = new ArrayList<User>(users.values());
return r;
}
@PostMapping("/")
public String postUser(@RequestBody User user) {
users.put(user.getId(), user);
return "success";
}
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
return users.get(id);
}
@PutMapping("/{id}")
public String putUser(@PathVariable Long id, @RequestBody User user) {
User u = users.get(id);
u.setName(user.getName());
u.setAge(user.getAge());
users.put(id, u);
return "success";
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
users.remove(id);
return "success";
}
}테스트 코드 작성
MockMvc 를 처음 사용해 보시는 분이라면 일부 함수가 존재 하지 않는다는 메시지가 있을것이다.
상단에 아래 패키지들이 잘 import 되었는지도 살피자!
끝!
Last updated