배경
위스키 선택/검색 컴포넌트용 lookup API가 개발 서버에 배포되었습니다.
대상 원 이슈: #162
API PR: bottle-note/bottle-note-api-server#613
연동 대상
위스키 선택이 필요한 검색/설정 컴포넌트에서 기존 조회 API 대신 lookup API를 사용합니다.
[검색 input]
|
| keyword / filter / cursor
v
[FE Component]
|
| GET /alcohols/lookup
v
[Lookup API]
|
| 핵심 필드 + cursor meta
v
[선택 리스트]
|
| select alcohol
v
[설정 화면 반영]
대상 API:
GET /api/v1/alcohols/lookup
GET /admin/api/v1/alcohols/lookup
예시:
GET /api/v1/alcohols/lookup?keyword=macallan&pageSize=20
GET /admin/api/v1/alcohols/lookup?keyword=macallan&pageSize=20
주요 파라미터
keyword: 검색어
pageSize: 페이지 크기
cursor: 다음 페이지 조회용 cursor
category: 카테고리 필터
regionId: 지역 필터
distilleryId: 증류소 필터
기대 동작
위스키 선택 UI에서 필요한 핵심 필드만 빠르게 조회합니다.
응답은 cursor 기반 페이지네이션을 사용합니다.
첫 요청
cursor 없음
|
v
items + nextCursor + hasNext
|
| hasNext=true
v
다음 요청
cursor=nextCursor
주의사항
- 별점, 좋아요, 리뷰 수 같은 부가 지표는 lookup API 대상이 아닙니다.
- 검색 결과는 Redis snapshot 기반이라 약간의 동기화 지연이 있을 수 있습니다.
- 무한 스크롤 또는 더보기 UI에서는
cursor와 hasNext 기준으로 다음 페이지를 요청해야 합니다.
- 검색어가 비어 있는 경우에도 기본 목록이 내려올 수 있으므로, 컴포넌트 UX에서 빈 검색 상태를 별도로 고려해야 합니다.
완료 기준
- 위스키 선택/검색 컴포넌트가 lookup API를 사용합니다.
- keyword 검색이 동작합니다.
- cursor 기반 다음 페이지 조회가 동작합니다.
- category, regionId, distilleryId 필터가 필요한 화면에서 정상 연동됩니다.
- 빈 결과와 no-match 케이스가 깨지지 않습니다.
배경
위스키 선택/검색 컴포넌트용 lookup API가 개발 서버에 배포되었습니다.
대상 원 이슈: #162
API PR: bottle-note/bottle-note-api-server#613
연동 대상
위스키 선택이 필요한 검색/설정 컴포넌트에서 기존 조회 API 대신 lookup API를 사용합니다.
대상 API:
예시:
주요 파라미터
keyword: 검색어pageSize: 페이지 크기cursor: 다음 페이지 조회용 cursorcategory: 카테고리 필터regionId: 지역 필터distilleryId: 증류소 필터기대 동작
위스키 선택 UI에서 필요한 핵심 필드만 빠르게 조회합니다.
응답은 cursor 기반 페이지네이션을 사용합니다.
주의사항
cursor와hasNext기준으로 다음 페이지를 요청해야 합니다.완료 기준