inflearn logo
강의

Course

Instructor

Spring MVC Part 2 - Backend Web Development Application Techniques

Start

비동기 Validation 오류코드 클라이언트에 반환하는것..

546

c0ffeeprince

5 asked

0

제가 회원가입과 로그인을 비동기로 처리하는데요. 일반 요청처럼 binding result에 오류 코드 담아서 클라이언트로 보내야하는데.. 아직 제 실력으로는 이걸 해결하기가 어렵네요 ㅠ

커뮤니티 뒤져본결과 해당 비동기 처리하는 공유해주신 게시물들을 봐도 너무 어렵더라구요..

이부분에 있어서 영한님 강의가 없을까요? ㅠ 하..

추천 쿼리큘럼에 스프링부트 DB 1,2편까지는 구매해놨습니다..

아직 API 예외처리 강의를 수강하지 못했는데, 이부분을 좀 더 이해할 수 있으려나요...

spring mvc

Answer 3

0

c0ffeeprince

api로 반환까진 했는데.. thymeleaf 폼을 메시지를 어떻게 활성화 하나 싶네요 ㅠ

0

David

안녕하세요. c0ffeeprince님, 공식 서포터즈 David입니다.

아쉽지만 비동기 처리에 대한 부분은 다루고 있지 않은 점 참고 부탁드립니다.

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요. 비동기 Validation 오류 코드를 클라이언트에 반환하는 것에 어려움을 겪고 계시군요.
영한님의 강의 중에서 해당 내용을 다루는 강의는 없지만, 스프링부트 DB 1, 2편과 API 예외처리 강의를 수강하셨다면 애플리케이션 개발에 필요한 기본적인 내용을 충분히 이해하고 계실 것입니다.

비동기 검증은 Spring MVC의 @Validated@RequestBody 애노테이션을 사용하여 처리할 수 있습니다. 이를 통해 요청 데이터를 검증하고 에러 결과를 BindingResult 객체를 통해 받아올 수 있습니다. 그리고 에러 결과는 클라이언트로 반환해야합니다.

예를 들어 회원가입 API에서 비동기로 유효성을 검사하고, 에러 결과를 클라이언트로 반환한다면 다음과 같은 방식을 사용할 수 있습니다.

@RestController
public class UserController {

    @PostMapping("/signup")
    public ResponseEntity<?> signUp(@Validated @RequestBody UserDto userDto, BindingResult bindingResult) {
        if(bindingResult.hasErrors()) {
            // 에러 결과를 클라이언트로 반환합니다.
            List<String> errors = bindingResult.getAllErrors()
                .stream()
                .map(ObjectError::getDefaultMessage)
                .collect(Collectors.toList());
            return ResponseEntity.badRequest().body(errors);
        }

        // 비동기 회원가입 로직...

        return ResponseEntity.ok("회원가입 성공");
    }
}

위 코드에서 @Validated@RequestBody 애노테이션을 사용하여 요청 데이터를 검증하고, BindingResult를 통해 에러 결과를 받아옵니다. bindingResult.hasErrors()를 사용하여 에러 유무를 확인하고, 있다면 bindingResult.getAllErrors()를 통해 모든 에러 정보를 받아올 수 있습니다. 이후 에러 정보를 클라이언트로 반환하는 방식으로 처리하면 됩니다.

비동기 Validation에 대한 더 자세한 내용은 Spring 공식 문서(https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#validation)를 참고하시면 도움이 될 것입니다.

어려운 부분이 있을 수 있지만, 기본적인 애플리케이션 개발 지식과 예외처리에 대한 강의 수강을 통해 충분히 해결하실 수 있다고 생각합니다. 화이팅하세요! 다른 질문이 있으시면 언제든지 물어보세요!

이미지 업로드와 db 트랜잭션 묶는법

0

42

1

Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4

0

52

2

MessageSourceTest 코드

0

47

1

인터셉터 에러 설정

0

48

1

resolveArgument()메서드 질문

0

56

1

43강 검증1 에서 실패 로직 관련 질문있습니다.

0

55

2

타임리프 3.X 버전 rendering, serializer 에러 해결 방법

2

133

3

스프링 빈에 등록이 안되는거 같은데 어떻게 하면 좋을까요?ㅠㅠ

0

90

3

pdf 오타 문의

0

57

1

ItemUpdateForm 검증 관련 질문입니다.

0

48

1

22page 링크 주소 변경

0

59

2

특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문

0

53

1

섹션3번 수업에 대한 질문입니다.

0

80

2

@Autowired 보다 더 좋은 방법이 어떤 걸까요?

0

85

2

타입컨버터 가 람다랑 비슷해 보이는데 저의 생각이 맞는지?.

0

65

1

자바스크립트 인라인에서 객체 직렬화 시 오류가 납니다

0

142

3

스프링부트 - 오류페이지2 에서 500.html 에서 쓰인 객체 질문

0

63

1

톰캣 에러 페이지가 안보입니다.

0

102

2

apiEceptionController에서 센드 에러 호출하면 안되는지?

0

81

1

세션 타임아웃시 쿠키 삭제 방법이 없나요?

0

118

2

ApiExceptionController 질문드립니다.

0

64

1

셀렉박스 챕터에서 option value에 ==배송 방식 선택== 이것을 넣은 이유가 궁금함, 이렇게 구상해도 되는지?

0

66

1

MemberRepository 필드의 fianl 선언 유무

0

85

2

혹시 index.html 에서는 fragment 사용이 안되는건가요

0

58

1