Skip to content

buyanov/tk-team-test-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

По всем вопросам в телеграм

Chat

Installation

Зависимости: make, git, docker, docker-compose

git clone https://github.com/buyanov/tk-team-test-api.git

// смотрим допустимые команды
make help

// собираем образ
make build

// ставим зависимости локально
make install

// запускаем приложение
make up

// накатываем тестовые данные и поисковый индекс
make init

// проверяем codestyle
make cs

// запускаем тесты
make test

// во время работы можно посмотреть логи
make logs

// останавливаем и удаляем контейнеры
make down

Важно: Чтобы выполнять посмотреть результаты выполнения запросов я использовал Postman и первым делом надо получить токен Админа для выполнения авторизованных запросов

Метод для получения админского токена

Особенности

  • В качестве веб сервера и менеджера процессов используется RoadRunner запущен он с APP_REFRESH=true конфиг лежит ./.rr.yaml

  • вместо привычных dd() и dump() надо использовать \dev\dd() и \dev\dump()

  • В проекте не делал кеширования, думаю на начальном этапе это бессмысленная трата времени

  • Добавил pgbouncer иначе база забивается постоянными соединениями и приложение падает

  • Добавил prometheus + grafana (localhost:3000) чтобы можно было следить за утечками памяти

  • Индексация новых тасков делается через очереди (иногда при старте индекс может быть пустым, тогда надо просто переиндексировать данные из базы)

docker-compose exec app php artisan scout:import "App\Task"
  • Для авторизации использовал Sanctum (решил просто попробовать как он) сделал вывод что для API лучше Passport или в случае с RR попробовать вынести эту логику в middleware на GO

  • Еще доделал бы нормальное включение/выключения xdebug (у меня он локально включен был)

  • Как следует посмотреть результаты профилирования и потестить работу RR с текущим набором библиотек на наличие утечек

  • Сделать preload все-таки PHP 7.4 но и это надо проверять и тестировать

Docs

https://documenter.getpostman.com/view/2790977/T1DjkKyg?version=latest

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published