TIL
TIL_072
Mon Groy
2024. 7. 23. 22:45
한 controller 에서 타입을 받아서
그에 따라 다른 타입의 게시글 작성되도록 설정하기
Enum 으로 게시글의 타입을 구분해 놓았기 때문에
입력받은 pathVariable 을 Enum으로 변환하여 해당 Service 단의 메서드로 연결시켜야 한다
스프링에서
StringToEnumConverterFactory
를 지원하고 있기 때문에 매개변수에서 바로 사용이 가능하다
@PostMapping
public ResponseEntity<ResponseDataDto<?>> createFeed (
@PathVariable final String group_name,
@RequestParam(value = "category") FeedEnumCategory category,
@RequestPart(value = "file", required = false) MultipartFile file,
//@AuthenticationPrincipal UserDetailsImpl UserDetails,
@Valid @RequestBody final FeedRequestDto request
) {
ResponseDataDto<?> responseDto;
switch(category) {
case ARTIST -> responseDto = feedService.createFeed(group_name, /*UserDetails*/, file, request );
case NOTICE -> responseDto = feedService.createNotice(group_name, file, /*UserDetails*/, request);
case SCHEDULE -> responseDto = feedService.createSchedule(group_name, UserDetails,request);
default -> throw new IllegalArgumentException();
}
return ResponseEntity.ok(new ResponseDataDto<>(ResponseStatus.CREATED, responseDto));
}
Trouble Shooting - 팀장님
회원가입을 구현했는데
테이블이 한 칸씩 밀리거나 다른 값이 입력 되는 문제
User 객체 생성자 매개변수 순서 맞추기
후 정상 작동
https://kapentaz.github.io/java/spring/Enum-and-@RequestParam-in-Spring/#
Enum and @RequestParam in Spring
Spring에서 문자나 숫자로 전달된 Request Parameter를 Enum 타입으로 처리하는 방법과 custom conveter를 만드려면 어떻게 해야 하는지 확인해보겠습니다.
kapentaz.github.io