@AuthenticationPrincipal 어노테이션은 현재 로그인한 사용자의 정보를 주입해준다.
@PostMapping("/users/signup")
public ResponseEntity<String> signup(@Valid @RequestBody UserSignupRequest request, BindingResult bindingResult) {
String errorMessages = "";
if (bindingResult.hasErrors()) {
for (FieldError fieldError : bindingResult.getFieldErrors()) {
errorMessages += fieldError.getField() + " : " + fieldError.getDefaultMessage() + "\n";
}
return new ResponseEntity<>(errorMessages, HttpStatus.BAD_REQUEST);
}
userService.signup(request);
return ResponseEntity.ok("회원가입 성공");
}
@Valid 어노테이션은 이 정보의 유효성을 검사하고, 검사 결과는 BindingResult에 담겨져 있다.
@RequestBody와 @ModelAttribute는 클라이언트로부터 전송된 데이터를 컨트롤러 메소드에서 받아오는 데 사용되는 어노테이션이다.
@RequestBody는 주로 JSON이나 XML 형식의 데이터를 받을 때 사용되고,
@ModelAttribute는 HTML 폼이나 쿼리 문자열 형식의 데이터를 받을 때 사용된다.