RESTAPI
RESTAPI - Event 생성 API 구현 - BAD_REQUEST
엔꾸꾸
2019. 8. 10. 23:55
REST API - Event 생성 API 구현 - BAD_REQUEST 처리하기
- 입력값이 없다면 BAD_REQUEST 를 발생시킴.
테스트 코드
- 아무런 입력값도 받지 않을경우 BAD_REQUEST를 받는 테스트코드
테스트 결과
- 400 BAD_REQUEST를 기대했지만 201 CREATED 응답이 온다.
- 잘못된 결과
@Valid
- @Valid를 사용하면 Handler Method에서 데이터를 바인딩시 검증을 진행한다.
- JSR 303 애노테이션을 활용해서 검증을 진행할 수 있다.
- 애노테이션들의 정보를 참고해서 검증을 수행한다.
- 검증을 수행한 결과를 Errors Type의 객체에다가 해당 검증 에러를 담아준다.
Handler 코드 변경
- @Valid 를 사용하여 데아터 검증을 진행한다.
- 입력값이 없을경우 BAD_REQUEST를 응답한다.
- EventDTO
- 이벤트 생성 API
변경된 코드 테스트 결과
- 입력값이 없는경우 테스트를 진행
- 기대값인 400 BAD_REQUEST가 나온다.
시작일이 종료일을 넘을경우 테스트
테스트코드
테스트 결과
- 시작일이 종료일을 넘는 경우와 같은 케이스는 애노테이션만으로 검증이 불가능하다.
- 별도의 Validator를 구현해주어야함
EventValidator 구현
- Validator Interface를 구현하지않고, EventValidator를 Bean으로 등록하여 이를 주입 받아 사용
Event 생성 API 코드 변경
- 빈으로 등록된 EventValidator를 주입받는다.
- EventValidator를 통한 검증도 추가
변경된 코드 테스트 결과
- 기대값인 400 BAD_REQUEST를 응답한다.