[REST API] User Resource에서 Post 메서드 구현하기

민지·2024년 3월 13일
0

REST API - Spring Boot

목록 보기
8/27
post-custom-banner

다룰 것

이번에는 user를 추가하는 REST API를 만들 것이다.

  • POST /users

구현코드 모음

1. UserResource modified - @PostMapping, @RequestBody

@RestController
public class UserResource {

	//SAME_OLD_CODE

	//POST /users
	@PostMapping("/users")
	public void createUser(@RequestBody User user) {
		service.save(user);
	}
	
	
}

@RequestBody 어노테이션 뜻


메서드 파라미터를, web requestbody와 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)

2. UserDaoService modified - 추가된 save 메서드

@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
}

실행결과 - Talend API Tester

POST /users를 보내기 위해, REST API client가 필요하다. 이에, 간단한 REST API client인 Talend API Tester를 사용했다!

POST 메서드로 테스트

또한 localhost:8080/users URL에 들어가면, 새로운 유저가 잘 생성된 것을 확인할 수 있었다!



참고 및 출처

이 시리즈는 Udemy 강의의 내용을 정리한 것입니다.
https://www.udemy.com/course/spring-boot-and-spring-framework-korean/

profile
배운 내용을 바로바로 기록하자!
post-custom-banner

0개의 댓글