Skip to content

[FE 연동]: 위스키 lookup API 적용 #261

Description

@Whale0928

배경

위스키 선택/검색 컴포넌트용 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에서는 cursorhasNext 기준으로 다음 페이지를 요청해야 합니다.
  • 검색어가 비어 있는 경우에도 기본 목록이 내려올 수 있으므로, 컴포넌트 UX에서 빈 검색 상태를 별도로 고려해야 합니다.

완료 기준

  • 위스키 선택/검색 컴포넌트가 lookup API를 사용합니다.
  • keyword 검색이 동작합니다.
  • cursor 기반 다음 페이지 조회가 동작합니다.
  • category, regionId, distilleryId 필터가 필요한 화면에서 정상 연동됩니다.
  • 빈 결과와 no-match 케이스가 깨지지 않습니다.

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions