Для подробного описания задачи и требований проекта посетите страницу задачи.
Game Results API – это RESTful веб-сервис для учета результатов игровых сессий. Он позволяет регистрировать результаты, извлекать топ-10 результатов и получать лучший результат конкретного пользователя. API обрабатывает информацию о результатах игроков, включая идентификаторы пользователей и их результаты в играх, измеряемые в миллисекундах. Это позволяет создавать записи о результатах, извлекать топ результаты и осуществлять поиск по результатам пользователям.
- PHP: Используется версия [8.2], обеспечивающая поддержку новейших функций языка и безопасности.
- Laravel: Применяется версия [10], предоставляющая обширные возможности для разработки современных веб-приложений.
Game Results API разработан с учетом современных архитектурных принципов и паттернов проектирования для обеспечения высокой гибкости, тестируемости и чистоты кода.
-
SOLID Principles: Каждый класс в API следует принципам SOLID, что обеспечивает высокую степень модульности и возможность масштабирования. Принципы SOLID помогают поддерживать и развивать систему с течением времени.
-
Repository Pattern: Для абстракции и инкапсуляции доступа к данным используется шаблон Repository. Это позволяет легко изменять и тестировать логику взаимодействия с данными, не затрагивая бизнес-логику.
-
Criteria Pattern: Для построения сложных запросов к базе данных и улучшения читаемости используется Criteria Pattern. Это позволяет динамически составлять запросы, повышая гибкость и поддерживаемость запросов.
-
Service Layer: Логика приложения организована в службы, что упрощает управление бизнес-логикой и делает ее более устойчивой к изменениям в пользовательском интерфейсе или других частях системы.
-
Dependency Injection: В проекте активно используется внедрение зависимостей для уменьшения сцепленности компонентов и упрощения управления их жизненным циклом.
-
Validation Layer: Валидация входящих запросов происходит на отдельном слое, что позволяет централизованно обрабатывать ошибки и обеспечивать корректность данных перед их обработкой.
-
Error Handling: Систематическая обработка ошибок обеспечивает ясность и предсказуемость ответов API, упрощая обнаружение и устранение проблем.
- PhpStorm: Мощная интегрированная среда разработки для PHP с расширенной поддержкой Laravel и встроенными инструментами для работы с базами данных и HTTP-клиентом.
- OpenAPI Specification: Спецификация, используемая для описания структуры и возможностей RESTful API, что упрощает процесс документирования и создания клиентов и серверов.
- Postman Collection: Набор предварительно составленных запросов для Postman, который облегчает процесс тестирования API путем предоставления готовых к использованию примеров запросов и ответов.
Для удобства тестирования и взаимодействия с API, в репозиторий включена Postman Collection. Эта коллекция содержит примеры запросов для каждого эндпоинта API, что позволяет разработчикам быстро начать работу с API без необходимости ручного составления запросов.
Документация для Game Results API предоставлена в формате OpenAPI, который позволяет легко генерировать и просматривать интерактивную документацию. Вы можете использовать различные инструменты, такие как Swagger Editor, для просмотра и взаимодействия с API на основе файла спецификации OpenAPI.
Примеры использования API и дополнительные инструкции по запросам предоставляются в виде коллекции Postman, которая включает предварительно настроенные запросы и примеры ответов. GameResults.postman_collection.json
Проект можно клонировать и запустить локально, следуя этим шагам:
-
Клонируйте репозиторий:
git clone https://github.com/Vanya9422/GameResults-API.git cd GameResults-API
-
Установите зависимости с помощью Composer:
composer install
-
Настройте файл окружения
.env
, используя пример.env.example
:cp .env.example .env
Затем настройте параметры подключения к базе данных в файле
.env
. -
Сгенерируйте ключ приложения:
php artisan key:generate
-
Запустите миграции для настройки базы данных:
php artisan migrate --seed
-
Запустите локальный сервер разработки:
php artisan serve
Теперь вы можете обращаться к API по адресу
http://localhost:8000
.
Для запуска тестов используйте PHPUnit:
php artisan test
Используйте PHPStan для статического анализа кода:
vendor/bin/phpstan analyse --level=5
Если у вас возникнут вопросы или понадобится помощь, обращайтесь к Вани.