video-game-api

module
v0.0.0-...-a1f2feb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2025 License: BSD-3-Clause

README

Video Game API

API para gerenciar consoles, cartuchos e outros itens relacionados a video-games.

Tecnologias Utilizadas

  • Go (Golang): Linguagem principal do projeto.
  • Docker e Docker Compose: Para execução e integração de ambientes.
  • Kubernetes (Kind): Para testes e execução em cluster local.
  • PostgreSQL: Banco de dados relacional.
  • Redis: Cache.
  • gRPC: Comunicação entre serviços.
  • Protobuf: Definição de APIs gRPC.
  • golangci-lint: Ferramenta de lint para Go.

Pré-requisitos

Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto com as seguintes variáveis (ajuste conforme seu ambiente):

SERVICE_NAME=video-game-api
SERVER_PORT=17020
GRPC_PORT=17022
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_USER=usuario
DATABASE_PASSWORD=senha
DATABASE_NAME=video_game
REDIS_HOST=localhost:6379
REDIS_PASSWORD=
REDIS_DB=0
VENDOR_IGDB_HOST=https://api.igdb.com
VENDOR_TWITCH_HOST=https://id.twitch.tv
VENDOR_TWITCH_CLIENT_ID=seu_client_id
VENDOR_TWITCH_CLIENT_SECRET=seu_client_secret

Como Executar Localmente

1. Via Docker Compose
docker compose up --build

A API estará disponível em http://localhost:17020.

2. Compilando e rodando local (Go)
make build
./build/video-game-api-linux-amd64

Certifique-se de que o banco de dados e o Redis estejam rodando e configurados conforme o arquivo .env.

3. Usando Makefile

Principais comandos:

  • make build: Compila o binário para seu SO.
  • make lint: Executa o linter.
  • make test: Executa os testes unitários.
  • make test-integration: Executa testes de integração via Docker Compose.
  • make build-docker-image: Gera a imagem Docker do serviço.
4. Kubernetes (Kind)

Para rodar em um cluster Kind local:

make kind-up
make build-docker-image
make kind-load
make kind-apply

Endpoints

  • REST: http://localhost:17020/consoles
  • Health checks: /liveness, /readiness
  • gRPC: Porta 17022 (default)

Licença

BSD 3-Clause License - Veja o arquivo LICENSE para mais detalhes.


Desenvolvido por Carlos Henrique Guardão Gandarez

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL