[STK4-04] 종목 조회·검색 API

작업 내용 (설계 의도)

변경 사항

StockApiController에 종목 리스트 조회(GET /api/v1/stocks)와 종목 검색(GET /api/v1/stocks/search?q=) 엔드포인트를 구현한다. Request → Command → DomainService → Response DTO 흐름을 따른다. 페이지네이션은 리스트 API에 적용한다.

선행: STK4-02

다이어그램

처리 흐름

sequenceDiagram
    participant FE as FE
    participant Ctrl as StockApiController
    participant UC as SearchStocksUseCase
    participant DS as StockDomainService

    FE->>Ctrl: GET /api/v1/stocks/search?q=삼성
    Ctrl->>UC: execute(SearchStocksCommand)
    UC->>DS: searchStocks("삼성")
    DS-->>UC: List<Stock>
    UC-->>Ctrl: List<StockResponse>
    Ctrl-->>FE: 200 OK

클래스 의존

flowchart LR
    StockApiController --> SearchStocksUseCase
    StockApiController --> GetStockPricesUseCase
    SearchStocksUseCase --> StockDomainService

테스트 케이스

  • GET /api/v1/stocks 호출 시 200과 종목 목록을 반환한다
  • GET /api/v1/stocks/search?q=삼성 호출 시 관련 종목 목록을 반환한다
  • GET /api/v1/stocks/search?q= 빈 쿼리 시 전체 종목을 반환한다
  • GET /api/v1/stocks/{symbol} 미존재 심볼 요청 시 404를 반환한다
  • Controller가 Repository를 직접 참조하지 않는다 (UseCase 경유)