2026-05-18 17:13:16 -05:00
2026-05-18 17:04:50 -05:00
2026-05-17 20:25:34 -05:00
2026-05-18 17:04:50 -05:00
2026-04-13 21:39:44 -05:00
2026-05-18 17:04:50 -05:00
2026-04-17 20:49:49 -05:00
2026-04-13 21:39:44 -05:00
2026-05-18 17:04:50 -05:00
2026-05-18 17:13:16 -05:00
2026-04-13 21:39:44 -05:00
2026-05-18 17:13:16 -05:00
2026-04-13 21:39:44 -05:00
2026-05-17 20:07:18 -05:00
2026-04-13 21:39:44 -05:00
2026-04-13 21:39:44 -05:00
2026-04-13 21:39:44 -05:00
2026-04-13 21:39:44 -05:00
2026-04-13 21:39:44 -05:00
2026-05-17 20:07:18 -05:00
2026-04-13 21:39:44 -05:00
2026-05-18 17:13:16 -05:00
2026-05-17 20:07:18 -05:00
2026-05-17 20:53:31 -05:00
2026-04-13 21:39:44 -05:00

🎮 Microsserviço de Rankings de Jogos (Game Ranking API)

Laravel PHP SQLite


📌 Sobre o Projeto

Este microsserviço faz parte do ecossistema GameVerse. Ele é responsável por processar, armazenar e disponibilizar estatísticas de engajamento, permitindo que a plataforma exiba rankings dinâmicos e tendências globais.


👥 Integrantes

  • Kaiky Andrade de Oliveira
  • Gabriel Henrique Lina Batista Pereira Nunes

📝 Descrição do Serviço

O serviço centraliza métricas de performance dos jogos, como:

  • pontuação
  • tempo de jogo
  • quantidade de jogadores ativos
  • evolução de desempenho

Ele resolve o problema de sobrecarga do sistema principal ao isolar o processamento de grandes volumes de dados estatísticos em um microsserviço dedicado, garantindo que as tabelas de classificação sejam atualizadas e entregues rapidamente aos usuários finais.


🎯 Responsabilidades do Microsserviço

O serviço possui as seguintes responsabilidades:

  • Fornecer rankings de desempenho semanal, mensal e anual
  • Listar os jogos mais populares
  • Exibir histórico de evolução de pontuação
  • Segmentar rankings por plataforma
  • Disponibilizar dados estatísticos para outros microsserviços

🛠️ Tecnologias Utilizadas

  • PHP 8.2
  • Laravel 11
  • SQLite
  • Composer
  • Laravel Scribe (Documentação OpenAPI)

Requisitos Necessários

Antes de executar o projeto, é necessário possuir instalado:

  • PHP >= 8.2
  • Composer
  • Git
  • SQLite

⚙️ Variáveis de Ambiente

O projeto utiliza variáveis configuradas no arquivo .env.

Exemplo:

Variável Descrição
APP_NAME Nome da aplicação
APP_ENV Ambiente da aplicação
APP_KEY Chave do Laravel
APP_DEBUG Modo de depuração
DB_CONNECTION Banco de dados utilizado

📥 Instalação do Projeto

1. Clone o repositório

git clone https://github.com/gabriellina640/api-ranking-jogos.git

2. Acesse a pasta do projeto

cd api-ranking-jogos

3. Instale as dependências

composer install

⚙️ Configuração do .env

Crie uma cópia do arquivo de ambiente:

cp .env.example .env

Configure o banco SQLite no arquivo .env:

DB_CONNECTION=sqlite

🗄️ Preparação do Banco de Dados

Execute as migrations e seeders:

php artisan migrate:fresh --seed

📚 Gerar Documentação da API

Execute o comando:

php artisan scribe:generate

🚀 Executando o Projeto

Inicie o servidor Laravel:

php artisan serve

A aplicação ficará disponível em:

http://localhost:8000

📖 Documentação Interativa da API

Após iniciar o projeto, acesse:

http://localhost:8000/docs

A documentação gerada pelo Scribe permite:

  • visualizar endpoints
  • testar requisições
  • consultar parâmetros
  • visualizar respostas JSON

🧪 Como Testar o Projeto

Você pode testar a API utilizando:

  • Scribe
  • Postman
  • Insomnia
  • Thunder Client

Exemplo:

GET http://localhost:8000/api/v1/rankings/weekly

📑 Rotas da API

Método Endpoint Descrição
GET /api/v1/rankings/weekly Lista o Top 10 jogos da última semana
GET /api/v1/rankings/monthly Lista o Top 10 jogos do último mês
GET /api/v1/rankings/yearly Lista o Top 10 jogos do último ano
GET /api/v1/rankings/history/{id} Busca a evolução de pontuação de um jogo
GET /api/v1/games/most-played Lista os jogos mais jogados
GET /api/v1/rankings/platforms/{platform} Lista rankings por plataforma

📥 Exemplo de Requisição

Buscar ranking semanal

GET /api/v1/rankings/weekly HTTP/1.1
Host: localhost:8000
Accept: application/json

📤 Exemplo de Resposta JSON

[
  {
    "id": 1,
    "name": "Elden Ring",
    "platform": "Steam",
    "active_players": 1500000,
    "weekly_points": 850,
    "monthly_points": 7000,
    "yearly_points": 85000,
    "created_at": "2026-05-04T22:00:00.000000Z",
    "updated_at": "2026-05-04T22:00:00.000000Z"
  }
]

🔗 Integrações com Outros Microsserviços

Quais dados recebe

O microsserviço recebe:

  • IDs de jogos
  • parâmetros de filtro
  • plataformas
  • períodos de ranking

Quais dados retorna

O serviço retorna:

  • rankings
  • estatísticas
  • histórico de pontuação
  • quantidade de jogadores ativos

Todos os dados são retornados em formato JSON.


Quais serviços consome

O microsserviço consome:

  • Microsserviço de Telemetria
  • Microsserviço de Catálogo de Jogos

Quais serviços utilizam esta API

Os serviços que utilizam esta API são:

  • Front-end GameVerse
  • Microsserviço de Loja
  • Sistema de Recomendações

🔄 Fluxo Principal do Serviço

  1. O usuário acessa a plataforma GameVerse
  2. O Front-end solicita os rankings
  3. O microsserviço consulta o banco SQLite
  4. Os dados são processados e ordenados
  5. O JSON é retornado ao Front-end
  6. Os rankings são exibidos ao usuário

⚠️ Possíveis Erros e Retornos Esperados

Código Erro Descrição
400 Dados inválidos Parâmetros incorretos
404 Jogo inexistente Jogo não encontrado
404 Plataforma inexistente Plataforma não encontrada
500 Erro interno Falha no servidor
503 Serviço indisponível Banco indisponível

📤 Exemplo de Erro JSON

{
  "success": false,
  "message": "Jogo não encontrado"
}

📁 Estrutura do Projeto

app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
tests/

📦 Arquivos Obrigatórios da Entrega

Este repositório contém:

  • README.md
  • .env.example
  • Código-fonte completo

⚠️ A pasta vendor/ não deve ser enviada para o GitHub.


📌 Participação no Ecossistema GameVerse

Este microsserviço é responsável por fornecer estatísticas e rankings em tempo real dentro do GameVerse.

Ele participa diretamente:

  • das vitrines de jogos populares
  • das recomendações de destaque
  • dos rankings competitivos
  • das estatísticas globais da plataforma

Seu objetivo é garantir alta performance na consulta de dados estatísticos.


📬 Contato

Projeto acadêmico desenvolvido para a disciplina de Microsserviços — GameVerse.

Description
No description provided
Readme 279 KiB
Languages
PHP 67.5%
Blade 32.4%
JavaScript 0.1%