Цей проєкт є простим PHP-застосунком для отримання даних користувачів. Він надає RESTful API для отримання списку користувачів або конкретного користувача за його ID. Додаток слідує структурованому MVC-патерну, з чітким розподілом обов'язків, включаючи валідацію запитів, форматування відповідей та управління даними користувачів. Реалізовано зберігання конфігураційних налаштувань у залежності від оточення (.env) та глобальних конфігів.
- Отримати всіх користувачів: Отримати повний список користувачів з їхніми деталями.
- Отримати користувача за ID: Отримати деталі конкретного користувача за його унікальним ID.
- Валідація запитів: Забезпечує, щоб вхідні дані були дійсними та очищеними.
- Структуровані відповіді: Надання консистентних JSON-відповідей, як для успішного отримання даних, так і для повідомлень про помилки.
-
Клонуйте репозиторій:
git clone https://github.com/aksvitpav/brighterly_test cd brighterly_test
-
Налаштуйте файл середовища:
Скопіюйте
.env.example
у.env
:cp .env.example .env
-
Запуск проєкта в docker compose:
docker compose up -d --build
-
Доступ до проєкту за адресою: http://localhost:8000
- src/: Містить усі вихідні файли коду.
- Controllers/: Містить
UserController
, який обробляє запити, пов’язані з користувачами таAuthController
, що відповідає за авторизацію. - Models/: Містить модель
User
, що представляє дані користувача. - Requests/: Містить класи валідації запитів, такі як
GetUserByIdRequest
. - Response/: Містить класи форматування відповідей, такі як
JsonResponse
таErrorResponse
. - routes/: Містить файл
api.php
з роутами системи.
- Controllers/: Містить
- public/: Містить головний файл
index.php
(точка входу). - config/: Містить файл конфігурації авторизації
auth.php
. - api_docs/: Містить файли колекцій роутів у форматі Insomnia та HAR.
-
Отримати всіх користувачів
- Шлях:
/users
- Метод:
GET
- Опис: Повертає JSON-масив усіх користувачів з їхніми деталями.
- Шлях:
-
Отримати користувача за ID
- Шлях:
/users/{id}
- Метод:
GET
- Опис: Повертає деталі конкретного користувача, визначеного його ID.
- Параметри:
id
(ціле число): ID користувача, якого потрібно отримати.
- Шлях: