Files
marketing-parser/Рефакторинг ParserController для поддержки фронтенда.md
2025-09-14 11:46:47 +05:00

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 для всех ответов контроллера, чтобы обеспечить строгую типизацию.