1.7 KiB
Необходимо модифицировать существующий ParserController и сервисный слой для эффективного отображения данных.
Требования:
Создать MarketItemService: Создай новый сервис MarketItemService, который будет содержать всю логику по работе с коллекцией market_items (получение, подсчет и т.д.). Перенеси в него методы getAllItems и getTotalItemsCount из KursivParserService и сделай так, чтобы они работали со всеми записями, а не только с одним источником.
Реализовать пагинацию и сортировку: Измени метод getAllItems в контроллере и сервисе так, чтобы он принимал Pageable в качестве аргумента. Метод должен возвращать Page. Фронтенд сможет запрашивать данные так: GET /api/parser/items?page=0&size=10&sort=published_at,desc.
Добавить фильтрацию: Добавь в метод getAllItems необязательные параметры запроса (@RequestParam):
sourceName (тип String) для фильтрации по источнику.
startDate, endDate (тип String или LocalDate) для фильтрации по диапазону дат.
Заменить Map<String, Object> на DTO: Создай классы-DTO для всех ответов контроллера, чтобы обеспечить строгую типизацию.