Laravel · API · тауар каталогы
Икемді сипаттамалары бар тауар каталогының REST API
Клиент:
Жеке жоба
Санат: Laravel
Стек: Laravel, PHP 8.2+, PostgreSQL/MySQL/SQLite, PHPUnit, GitHub Actions
Мерзім: 1 апта
Мәселе
Өрістердің бекітілген схемасынсыз толық динамикалық сипаттамалары бар және бірнеше мән бойынша бірден икемді сүзгілей алатын ықшам тауар каталогының REST API керек болды.
Шектеулер
Сипаттамалар жиынтығы әрбір жаңа өріске миграциясыз өзгеруі керек болды, ал сүзгілеу query-параметрлердегі юникод-жолдарды қоса, бірнеше мән таңдау бойынша дұрыс жұмыс істеуі керек болды.
Не істедім
- EAV-схема: тауарлар, сипаттамалар және олардың мәндері — бекітілген өрістер жиынтығынсыз
- Бірнеше мән таңдауды қолдайтын ішкі сұраныстар арқылы сүзгілеу
- Деректер өзгергенде автоматты жарамсыздандырумен қолжетімді сүзгілер анықтамалығын кэштеу
- Middleware арқылы API жауаптарын локализациялау (ru/en)
- CI: PostgreSQL-де тесттер, статикалық анализ, стиль тексеруі және әрбір push сайын тәуелділіктердің security-аудиті
Архитектура
REST API
→ EAV моделі (тауарлар/сипаттамалар/мәндер)
→ Сүзгілер кэші
→ CI/CD
Нәтиже
Қосымша баптаусыз SQLite/MySQL/PostgreSQL-де қайталанатын, әрбір код өзгерісінде сапа мен қауіпсіздікті автоматты тексеретін икемді деректер моделі бар жұмыс істейтін API.
Нені қайта қолдануға болады
Бірнеше мән бойынша сүзгілеуі бар EAV-схема
Автожарамсыздандыруы бар сүзгілер анықтамалығының кэші
CI-конфигурациясы: тесттер + статанализ + security-аудит