Реализация Reviews и Favorites в Rust¶
Дата: 2026-03-13 Автор: Trae AI Agent Статус: Выполнено
Описание¶
В рамках миграции на Rust реализованы модули отзывов (Reviews) и избранного (Favorites), полностью повторяющие функционал FastAPI.
Реализованные модули¶
1. Reviews (handlers/review.rs, models/review.rs)¶
- GET /rust/v1/reviews: Получение списка отзывов с фильтрацией по типу объекта, ID объекта, рейтингу, пользователю. Поддерживает сортировку и пагинацию. Возвращает данные автора и лайк текущего пользователя.
- POST /rust/v1/reviews: Создание нового отзыва с прикреплением изображений.
- GET /rust/v1/reviews/stats/{target_type}/{target_id}: Получение статистики (средний рейтинг, распределение оценок, лайки, просмотры).
- POST /rust/v1/reviews/{id}/like: Тогл лайка (лайк/дизлайк).
2. Favorites (handlers/favorite.rs, models/favorite.rs)¶
- GET /rust/v1/favorites: Получение списка избранного пользователя. Автоматически подтягивает детали объектов (название, описание, фото) из соответствующих таблиц (
hotels,tours,restaurants,stories). - POST /rust/v1/favorites: Добавление объекта в избранное.
- DELETE /rust/v1/favorites/{item_type}/{item_id}: Удаление из избранного.
- GET /rust/v1/favorites/check/{item_type}/{item_id}: Проверка наличия в избранном.
3. Исправления и улучшения¶
- Исправлен модуль
handlers/ws.rs(WebSocket) для корректной работы с токенами и Redis. - Исправлен модуль
handlers/chat.rsдля использования runtime-запросовsqlx. - Исправлен
db.rsдля корректной инициализации состояния чатов (ChatRooms).
Совместимость¶
API полностью совместимо с фронтендом, использующим соответствующие пути (с префиксом /rust/v1).
Инструкция по проверке¶
cargo run- Открыть Swagger UI:
http://localhost:9011/swagger-ui/ - Протестировать эндпоинты в секциях
ReviewsиFavorites.