🟦 TEAM-1 | CRUD
Эндпоинт: GET /api/items (ADMIN + USER)
Query params
| Параметр |
Значения |
По умолчанию |
sort |
name, sku |
name |
order |
asc, desc |
asc |
category |
строка |
— |
search |
строка (ILIKE по name) |
— |
page |
число |
0 |
size |
число |
20 |
Response
{
"content": [...],
"totalElements": 42,
"totalPages": 3,
"page": 0,
"size": 20
}
Что сделать
JpaSpecificationExecutor для фильтров
ItemSpecification: отдельные спецификации для category, search, isActive
- Фильтровать только
is_active = true
⚠️ Кэширование категорий — отдельная задача CACHE-2 (TEAM-2). Здесь без Redis.
Acceptance criteria
🟦 TEAM-1 | CRUD
Эндпоинт:
GET /api/items(ADMIN + USER)Query params
sortname,skunameorderasc,descasccategorysearchpage0size20Response
{ "content": [...], "totalElements": 42, "totalPages": 3, "page": 0, "size": 20 }Что сделать
JpaSpecificationExecutorдля фильтровItemSpecification: отдельные спецификации дляcategory,search,isActiveis_active = trueAcceptance criteria
?sort=sku&order=desc→ отсортировано по SKU убыванию?category=Электроника→ только нужная категория?search=dell→ case-insensitive поиск по названию