Spring Boot3 & Spring Framework 6 강의 ::Section.8 REST API로 JSON 형태의 회원정보 검색 / 생성

suragryen·2024년 3월 6일
0

Udemy-Spring

목록 보기
14/25

요청 -> dispatcherServlet
spring MVC 에서 모든 요청은 디스패처 서블릿이 처리함

@RequestMapping(path = "/hello-world/path/variable/{name}") 
	public HelloWorldBean helloWorldPathVariable(@PathVariable String name) {
		return new HelloWorldBean(String.format("Hellow world, %s", name)); //json 응답  
	}

http://localhost:8080/hello-world/path/variable/soo

  • put : 기존 리소스를 업데이트 할때
  • patch : 기존 리소스의 일부만을 업데이트 할 때.

REST API로 회원 정보 검색 / 생성해보기 🧑🏻‍🏫

  • 모든 사용자 검색
  • 특정 사용자의 상세정보 저장
  • 정적 ArrayList를 만들고 UserDaoService를 활용해 ArrayList와 소통

모든 사용자 검색

  1. Controller
	@RestController
public class UserResource {
	private UserDaoService service;
	
	public UserResource (UserDaoService service) {
		this.service = service;
	}
	
	@GetMapping("/users")
	public List<User> retrieveAllUsers(){
		return service.findAll(); 
	}
	
}
  • static 안에 하드 코딩된 사용자 정보 저장한다.
  • 사용자 정보가 /users로 매핑되어 있다
  1. UserDaoService.java
	
	@Component
	
	private static List<User> users = new ArrayList<>();
	
	static {
		users.add(new User(1, "Adam", LocalDate.now().minusYears(30)));
		users.add(new User(2, "Eve", LocalDate.now().minusYears(25)));
		users.add(new User(3, "jal", LocalDate.now().minusYears(31 )));
	}
	
	public List<User> findAll(){
		return users;
	}
	
	

}
  • @Component로 연결시켜준다.
  • 정적으로 저장된 users를 findAll 호출시 리턴

특정 사용자 검색

	public User findOne(int id) {
		
		Predicate<? super User> predicate = user -> user.getId().equals(id);
		return  users.stream().filter(predicate).findFirst().get();
		
	}
  • for 문 대신 stream().filter가 사용 되었다
  • 매치되는 아이디를 돌려줌

사용자 생성

  • view 대신 Talend API TEST를 사용해 POST로 요청을 보내서 사용자를 생성 해 보자!

UserDaoService.java

public User save(User user) {
		user.setId(++userCount);
		users .add(user);
		return user;
	}
  • 새로운 유저가 생성되는 로직 생성

Controller

@PostMapping("/users")
	public void createUser(@RequestBody User user) { //웹 요청을 보낼 때 요청 본문을 보냄 .
		service.save(user); 
	}
  • @RequestBody를 통해서 요청을 body로 보낸다

  • API TESTER에 JSON형태로 POST 요청을 보내면!

생성 완료!

profile
블로그 이사중 ☃︎

0개의 댓글

관련 채용 정보