Към съдържанието
N1
Laravel · API · каталог с продукти

REST API на каталог с продукти с гъвкави характеристики

Клиент: Личен проект Категория: Laravel Стек: Laravel, PHP 8.2+, PostgreSQL/MySQL/SQLite, PHPUnit, GitHub Actions Срок: 1 седмица
Проблем

Беше нужен компактен REST API на каталог с продукти с напълно динамични характеристики — без фиксирана схема на полетата — и гъвкаво филтриране по няколко стойности едновременно.

Ограничения

Наборът от характеристики трябваше да се променя без миграции при всяко ново поле, а филтрирането — да работи коректно по множествен избор на стойности, включително Unicode низове в query параметрите.

Какво направих
  • EAV схема: продукти, характеристики и техните стойности — без фиксиран набор от полета
  • Филтриране чрез вложени заявки с поддръжка на множествен избор на стойности
  • Кеширане на справочника с достъпни филтри с автоматична инвалидация при промяна на данните
  • Локализация на API отговорите (ru/en) чрез middleware
  • CI: тестове на PostgreSQL, статичен анализ, проверка на стила и security одит на зависимостите при всеки push
Архитектура
REST API EAV модел (продукти/характеристики/стойности) Кеш на филтрите CI/CD
Резултат

Работещ API с гъвкав модел на данните, възпроизводим на SQLite/MySQL/PostgreSQL без допълнителна настройка, с автоматична проверка на качеството и сигурността при всяка промяна на кода.

Какво може да се преизползва
EAV схема с филтриране по множество стойности Самоинвалидиращ се кеш на справочника с филтри CI конфигурация: тестове + статичен анализ + security одит