티스토리 뷰
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 로 이벤트 생성 요청이 오면, 해당 이벤트를 EventRepository에 저장한다.
- 저장된 Event의 ID로 링크를 생성해준다.
- 그후 저장된 Event를 응답본문으로 Return
Event 생성 API 테스트
- @WebMvcTest
- 웹과 관련된 테스트 이기때문에 EventRepository 를 @Autowired로 의존성을 주입받아 사용하려고하면 해당 빈이 존재하지않는다는 에러가 발생한다.
- @MockBean
- @MockBean 애노테이션을 활용하여 해당 객체를 Mocking한다.
- given(eventRepository.save(event)).willReturn(event);
- Mocking된 객체이기때문에 해당 객체의 특정 메서드를 호출하였을때 Return값도 지정해주어야한다.
'RESTAPI' 카테고리의 다른 글
RESTAPI - Event 생성 API 구현 - 입력값 제한 이외에 에러 발생 (0) | 2019.08.10 |
---|---|
RESTAPI - Event 생성 API 구현 - 입력값 제한 (0) | 2019.08.07 |
RESTAPI - Event 생성 API - 201 응답 (0) | 2019.08.05 |
RESTAPI - Event 생성 API - TEST Class (0) | 2019.08.05 |
RESTAPI - Event 생성 API - 명세 (0) | 2019.08.05 |
댓글