Emotional Diary의 Backend입니다.
Spring Boot / MySql(Docker) / Data JPA를 사용합니다.
모든 리스폰스 객체의 형식을 통일화하였습니다. CommonResponse를 상속받은 3개의 Response를 쓰면됩니다. 해당 Response는 빌더 패턴으로 만들어졌습니다.
- ListResponse
- SingleResponse
- ErrorResponse
아래와 같이 사용하시면 됩니다.
@GetMapping(value = "/test")
public final CommonResponse test() {
return SingleResponse.<String>builder()
.success(true)
.status(200)
.message("hi")
.result("what the hell")
.build();
}
앞의 예시(SingleResponse)의 결과는 다음과 같습니다.
{
"success": true,
"status": 200,
"message": "hi",
"result": "what the hell"
}
ListResponse를 사용하는 경우는 result의 List가 담기게 됩니다.
{
"success": true,
"status": 200,
"message": "hi",
"result": [...]
}
일단 기본적으로 GlobalExceptionController에서 처리 합니다. 자세한 처리 방식은 해당 컨트롤러를 참고하시면 됩니다.(혹은 저에게 물어봐주세요)
전역으로 처리가 불필요한 CustomException 들은 해당 에러가 발생하는 객체내에서 처리하셔도 됩니다.
단위 테스트는 일단 서비스 레이어에만 적용하도록 합니다. 테스트 코드 작성법은 test 폴더 내에서 확인하시길 바랍니다.
테스트 작성시 given / when / then 패턴으로 진행하겠습니다.
- given: 데이터가 준비
- when: 서비스 실행
- then: 서비스 검증
- env파일과 application.yml 파일은 gitignore처리하였기 때문에 직접 작성 혹은 복붙 해야합니다.
- env파일과 application.yml 파일은 노션에 공유했으니 확인부탁드리겠습니다.
- env 파일 위치는 docker-compose.yml과 같은 위치이어야 합니다.
- application.yml 파일 위치는 src/main/resources입니다.