Skip to content

aksvitpav/brighterly_test

Repository files navigation

Опис проєкту

Огляд

Цей проєкт є простим PHP-застосунком для отримання даних користувачів. Він надає RESTful API для отримання списку користувачів або конкретного користувача за його ID. Додаток слідує структурованому MVC-патерну, з чітким розподілом обов'язків, включаючи валідацію запитів, форматування відповідей та управління даними користувачів. Реалізовано зберігання конфігураційних налаштувань у залежності від оточення (.env) та глобальних конфігів.

Особливості

  • Отримати всіх користувачів: Отримати повний список користувачів з їхніми деталями.
  • Отримати користувача за ID: Отримати деталі конкретного користувача за його унікальним ID.
  • Валідація запитів: Забезпечує, щоб вхідні дані були дійсними та очищеними.
  • Структуровані відповіді: Надання консистентних JSON-відповідей, як для успішного отримання даних, так і для повідомлень про помилки.

Інсталяція

  1. Клонуйте репозиторій:

    git clone https://github.com/aksvitpav/brighterly_test
    cd brighterly_test
  2. Налаштуйте файл середовища:

    Скопіюйте .env.example у .env:

    cp .env.example .env
  3. Запуск проєкта в docker compose:

    docker compose up -d --build
  4. Доступ до проєкту за адресою: http://localhost:8000

Структура проєкту

  • src/: Містить усі вихідні файли коду.
    • Controllers/: Містить UserController, який обробляє запити, пов’язані з користувачами та AuthController, що відповідає за авторизацію.
    • Models/: Містить модель User, що представляє дані користувача.
    • Requests/: Містить класи валідації запитів, такі як GetUserByIdRequest.
    • Response/: Містить класи форматування відповідей, такі як JsonResponse та ErrorResponse.
    • routes/: Містить файл api.php з роутами системи.
  • public/: Містить головний файл index.php (точка входу).
  • config/: Містить файл конфігурації авторизації auth.php.
  • api_docs/: Містить файли колекцій роутів у форматі Insomnia та HAR.

Використання

  1. Отримати всіх користувачів

    • Шлях: /users
    • Метод: GET
    • Опис: Повертає JSON-масив усіх користувачів з їхніми деталями.
  2. Отримати користувача за ID

    • Шлях: /users/{id}
    • Метод: GET
    • Опис: Повертає деталі конкретного користувача, визначеного його ID.
    • Параметри:
      • id (ціле число): ID користувача, якого потрібно отримати.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published