23.05.08(Spring)

MH S·2023년 5월 8일

벨리데이션

벨리데이션: 유효성 체크

ex) 로그인 시 아이디와 비밀번호를 치고 요청을 보내는 지 확인
1. html 화면에서 한번
2. 서버에서 한 번 더
(서버는 요청 데이터를 신뢰하지 않는다)

밸리데이션 라이브러리는 꼭 필요하지만 귀찮은 유효성 체크를 어노테이션으로 쉽게 처리하도록 도와준다.

@Size
@NotNull
@NoEmpty
@NotBlank
@Max
@Min
@AssertTrue/False
@Valid

라이브러리 추가

https://mvnrepository.com/
주소에서 Spring boot validation 검색 후

위의 코드를 build.gradle 에 추가 저장후 프로젝트 다시 로드


데이터를 받아오는 객체 - 필드값에 @NotBlank

컨트롤러 매개변수에 @Validated

추가하면 400에러가 자동 출력

에러 핸들링

에러가 수십군데 터졌음
에러를 확인하고
클래스 만들고 @RestControllerAdvice
함수 생성 후 @ExceptionHandler
exception.getBindingResult().getFieldErrors()
를 이용해서 에러 메시지를 가공해서 전달 한다

상태응답

ResDTO -> 화면에 보낼 정보

(code/message/data)

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

200 OK
요청이 성공적으로 되었습니다. (GET)

201 Created
요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다. (POST)

400 Bad Request
이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미합니다.

401 Unauthorized
비록 HTTP 표준에서는 "미승인(unauthorized)"를 명확히 하고 있지만, 의미상 이 응답은 "비인증(unauthenticated)"을 의미합니다. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 합니다.

403 Forbidden
클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다. 예를들어 그들은 미승인이어서 서버는 거절을 위한 적절한 응답을 보냅니다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있습니다.

405 Method Not Allowed
요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없습니다.

500 Internal Server Error
서버가 처리 방법을 모르는 상황이 발생했습니다.

HttpEntity

ResPonsibility

(상태코드/헤더/바디)
-StatusCode (200,400,500 등)
-Headers
-body (ResDTO)

REST Controller 로 데이터 리턴시 무조건
ResponseEntity + ResDTO

0개의 댓글