도시
- 필수 속성 : 도시 이름 추가 속성은 자유롭게 정의
-
도시 등록 API
- test
- request에 대한 검증
-
도시 수정 API
- 기존 도시 속성(도시 이름, 추가 속성) 수정
- test
- 예외 처리
- 존재하지 않는 city
- request 에 대한 검증
-
도시 삭제 API
- 단, 해당 도시가 지정된 여행이 없을 경우만 삭제 가능
- test
- 예외 처리
- 존재하지 않는 city
-
단일 도시 조회 API
- 도시 조회시 조회 수 +1
- 최근 조회 날짜 업데이트
-
사용자별 도시 목록 조회 API
- test
- 기본적으로 중복 없이 상위 10개 도시만 노출 (Pagination 없음)
- request에 대한 검증
여행지(도시) 관리를 완전히 동작시켜 보기 위해, 아래 요구사항으로 여행 관리 최소 스펙을 구현합니다.
여행
- 필수 속성 : 도시, 여행 기간(여행 종료일은 미래만 허용) 추가 속성은 자유롭게 정의
-
여행 등록 API
- test
- request에 대한 검증
-
여행 수정 API
- 기존 여행 속성(도시, 여행 기간, 추가 속성) 수정
- test
- 예외 처리
- 존재하지 않는 city를 찾을 때
- 존재하지 않는 travel을 찾을 때 (이미 삭제된 travel에 접근할 경우)
- request에 대한 검증
-
여행 삭제 API
- test
- 예외 처리
- 존재하지 않는 travel을 찾을 때 (이미 삭제된 travel에 접근할 경우)
-
단일 여행 조회 API
- test
- 예외 처리
- 존재하지 않는 travel을 찾을 때 (이미 삭제된 travel에 접근할 경우)
- 존재하지 않는 Entity 조회
- 400 클라이언트에서 비정상적인 값 입력
- 405 허용되지 않은 Http method 요청
- request 에 대한 검증 BusinessException
- 프로그래밍 언어는 Java 혹은 Kotlin 사용 -> Java
- 빌드 도구는 Gradle 혹은 Maven 사용 -> Gradle 프레임워크, 라이브러리는 자유롭게 선택
- 환경별로 데이터베이스 구분
- development, test : H2
- production : MySQL
- 테스트 작성
- 필수 : API 검증 테스트 (Acceptance Test)
- 권장 : 단위 테스트 (Unit Test)
- README 파일에 로컬 실행 방법 기술