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를 응답한다.