Giter Club home page Giter Club logo

vanya9422 / gameresults-api Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 148 KB

Game Results API – это RESTful веб-сервис для учета результатов игровых сессий. Он позволяет регистрировать результаты, извлекать топ-10 результатов и получать лучший результат конкретного пользователя. API обрабатывает информацию о результатах игроков, включая идентификаторы пользователей и их результаты в играх, измеряемые в миллисекундах. Это по

PHP 79.20% JavaScript 0.21% Blade 20.60%

gameresults-api's Introduction

Game Results API

Задача

Для подробного описания задачи и требований проекта посетите страницу задачи.

Введение

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 путем предоставления готовых к использованию примеров запросов и ответов.

Postman Collection

Для удобства тестирования и взаимодействия с API, в репозиторий включена Postman Collection. Эта коллекция содержит примеры запросов для каждого эндпоинта API, что позволяет разработчикам быстро начать работу с API без необходимости ручного составления запросов.

Документация API

Документация для Game Results API предоставлена в формате OpenAPI, который позволяет легко генерировать и просматривать интерактивную документацию. Вы можете использовать различные инструменты, такие как Swagger Editor, для просмотра и взаимодействия с API на основе файла спецификации OpenAPI.

Примеры использования API и дополнительные инструкции по запросам предоставляются в виде коллекции Postman, которая включает предварительно настроенные запросы и примеры ответов. GameResults.postman_collection.json

Установка и запуск проекта

Проект можно клонировать и запустить локально, следуя этим шагам:

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

    git clone https://github.com/Vanya9422/GameResults-API.git
    cd GameResults-API
    
  2. Установите зависимости с помощью Composer:

    composer install
    
  3. Настройте файл окружения .env, используя пример .env.example:

    cp .env.example .env
    

    Затем настройте параметры подключения к базе данных в файле .env.

  4. Сгенерируйте ключ приложения:

    php artisan key:generate
    
  5. Запустите миграции для настройки базы данных:

    php artisan migrate --seed
    
  6. Запустите локальный сервер разработки:

    php artisan serve
    

    Теперь вы можете обращаться к API по адресу http://localhost:8000.

Тестирование

Для запуска тестов используйте PHPUnit: php artisan test

Используйте PHPStan для статического анализа кода: vendor/bin/phpstan analyse --level=5

Контактная Информация

Если у вас возникнут вопросы или понадобится помощь, обращайтесь к Вани.

gameresults-api's People

Contributors

vanya9422 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.