-
Notifications
You must be signed in to change notification settings - Fork 1
search alcohols
whale0928 edited this page Jun 13, 2024
·
1 revision
이 문서는 위스키 목록을 조회하는 API에 대한 기술적인 명세를 기술합니다.
- 술을 조회하는 API를 제공합니다.
- 토큰에 따른 찜하기 여부를 제공합니다.
- 검색어, 카테고리, 리전, 솔팅을 통해 술을 조회합니다.
-
#54이슈를 기반으로 진행됩니다. -
API endpoint :
GET /api/v1/alcohols/search -
request
- 검색어(keyword)
- 카테고리(category)
- 리전 아이디(regionId)
- 정렬 타입(sortType)
- 인기순 :: POPULAR
- 별점순 :: RATING
- 찜순 :: PICK
- 댓글순 :: REVIEW
- 기본값 :: POPULAR
- 정렬 방향(sortOrder)
- 내림차순 :: DESC
- 오름차순 :: ASC
- 기본값 DESC
- cursor
- 페이징을 위한 커서
- 시작 값
- 기본 0
- pageSize
- 한번에 조회할 데이터 수
- 기본값 10
-
response
- 조회된 목록 갯수
- 목록 상세
- 술 아이디.
- 술 한글이름
- 술 영어이름
- 한글 카테고리명
- 영어 카테고리명
- 썸네일 이미지.
- 평균 별점
- 별점 참여자 수
- 리뷰 참여자 수
- 찜 카운트
- 내가 찜했는지 여부
- 메타정보
- 검색시 사용된 검색어
- 조회 커서 정보
-
QueryDsl 계층 전달 전 별도의 dsl 객체로 만들어 전달한다.
-
검색어 필터링을 구현한다.
-
커서 기반을 구현 (객체,서비스)
예외 발생 시 다음과 같은 에러 내용을 반환합니다.
-
카테고리가 이상한 경우
-
리전이 이상한 경우
-
정렬 구분자 타입이 잘못된 경우
-
토큰이 이상한 경우
-
검색어가 이상한 경우
- 비지니스 로직
동적 쿼리가 필요함-
솔팅 타입에 따른 각각 다른 비지니스 로직이 필요함. - 토큰에 따른 찜하기 여부를 확인해야함.
검색어 조건을 like 검색으로 해야함.카테고리, 리전, 솔팅에 따른 필터링이 필요함.-
인기도 계산식이 필요함.가중치 계산식이 필요함.
- 테스트 코드
- controller
- mock mvc 테스트
- rest docs 문서화 테스트
- service
- repository
- querydsl 테스트
- controller