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 를 사용하여 데아터 검증을 진행한다. - 입력값이 없을경우..
REST API - Event 생성 API 구현 - 입력값 제한 이외에 에러 발생 기존에는 받았던 값들을 무시하고 진행했지만, 이번에는 이외의 값들이 전달되면 에러를 발생시킴. 테스트 코드 입력값을 제한한 것 이외의 요청이 들어오면 BAD_REQUEST 응답을 보내는 테스트코드 작성 결과 현재는 테스트가 실패한다. 실패하는 이유 ? 현재는 입력값을 제한한것 이외의 값이 들어오더라도 이를 '무시'하고 진행하기 때문 예외를 발생시키는 방법 SpringBoot가 제공하는 properties를 활용한 ObjectMapper확장 기능을 활용하면된다. JSON를 Object로 변환하는 과정을 deserialization Object를 JSON 로 변환하는 과정을 serialization Handler에서 받지않거나..
REST API - Event 생성 API 구현 - 입력값 제한 입력값 제한 ID 혹은 입력받은 데이터로 부터 계산해야하는 값들은 입력을 받지 않아야한다. 애노테이션 을 활용한다. DTO를 생성하여 활용한다. DTO를 생성하여 활용하는 방법을 선택 이유 ? 도메인 클래스에 애노테이션이 많아 진다. 클래스가 지저분해지고 뭐가 뭔지 알아보기 힘들어진다. 단점 ? 중복이 발생한다. EventDTO Event 생성 API EventDto를 활용하여 입력값을 제한하여 데이터를 받아온다. ObjectMapper로 EventDto를 EventEntity로 변환 변환된 EventEntity로 save .. 기존의 테스트코드가 깨진다 ?! 테스트코드가 에러가발생 NullPointerException 발생 Controll..
REST API - Event 생성 API 구현 - EventRepository Event Entity Enum Mapping시 주의할점 @Enumerated(EnumType.STRING) 을 사용할것. ORDINAL 을 사용하면, ENUM의 순서가 바뀌게되면 기존의 데이터에 영향을 미치게된다. Spring Data JPA JpaRepository를 상속받아 생성 jpaRepository는 상위클래스에 CRUD Repository 가 존재하기 때문에 기본적인 CRUD메서드가 존재한다. Event 생성 API produces = MediaTypes.HAL_JSON_UTF8_VALUE 응답 컨텐츠 타입을 HAL_JSON 으로 지정한다. 생성 API 로 이벤트 생성 요청이 오면, 해당 이벤트를 EventRep..