lekss361
|
7814e1223a
|
feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache
Multi-Source Integration Phase 3.2. /api/v1/search with cross-source filters
+ POST body params + Redis 5min hot cache.
New files:
app/schemas/search.py — SearchParams (~20 filters, Pydantic v2)
app/schemas/search_response.py — SearchResponse + SearchResultItem
app/services/search_query.py — build_search_query (psycopg v3, CAST(:x AS type))
app/services/cache.py — SearchCache async wrapper (singleton lru_cache)
app/api/v1/search.py — POST /search endpoint
tests/test_search_api.py — unit + integration tests
Edited:
app/main.py — include search.router prefix=/api/v1
app/core/config.py — settings.redis_url default
pyproject.toml — add redis>=5.0.0
Queries listings_search_mv (matview from PR #469). Cache failures swallowed
(degrade to slow-but-correct). Sort whitelisted dict (no SQL injection).
Refs Master Plan sec 9.1 + 7.2.
|
2026-05-23 17:38:00 +03:00 |
|