PixPay Gateway é uma API Gateway para processamento de pagamentos utilizando Pix. Esta aplicação é construída com Golang e o framework Gin, e utiliza PostgreSQL como banco de dados, Docker para containerização e Terraform para gerenciar a infraestrutura.
- Roteamento de Solicitações: Encaminha solicitações dos clientes para o serviço apropriado no backend e facilita o balanceamento de carga.
- Autenticação e Autorização: Verifica se as solicitações são autenticadas e autorizadas antes de encaminhá-las para os serviços internos.
- Agregação de Respostas: Combina respostas de múltiplos serviços backend em uma única resposta para o cliente.
- Transformação de Mensagens: Modifica as solicitações e respostas conforme necessário (ex.: transformação de formatos de dados, adição/removal de cabeçalhos).
- Gerenciamento de Taxas (Rate Limiting): Controla o número de solicitações que um cliente pode fazer em um determinado período para prevenir abuso e sobrecarga do sistema.
- Monitoramento e Logging: Coleta métricas e logs das solicitações para monitoramento, análise e troubleshooting.
- Cache: Armazena em cache as respostas de serviços backend para melhorar o desempenho e reduzir a carga nos serviços.
pixpay-gateway/
├── api/
│ ├── handlers/
│ │ ├── handlers.go
│ │ ├── aggregate.go
│ ├── middleware/
│ │ ├── cache.go
│ │ ├── rate_limit.go
│ │ ├── middleware.go
│ │ ├── logger.go
│ ├── routes/
│ │ ├── routes.go
│ └── main.go
├── config/
│ ├── config.go
│ └── config.yaml
├── db/
│ ├── migrations/
│ └── db.go
├── docker/
│ ├── Dockerfile
│ ├── docker-compose.yaml
├── scripts/
│ └── init.sql
├── terraform/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
├── .env
├── go.mod
├── go.sum
└── README.md
- Go 1.22+
- Docker
- Docker Compose
- Terraform
- PostgreSQL
- Crie o banco de dados PostgreSQL utilizando o script
scripts/init.sql
. - Configure as variáveis de ambiente no arquivo
.env
com as credenciais do banco de dados.
- Construa e inicie os containers:
docker-compose up --build
- Acesse o servidor Docker:
docker-compose exec pixpay-gateway bash
- Inicie o serviço:
go run cmd/api/main.go
- Inicialize o Terraform:
terraform init
- Configure as variáveis de ambiente no arquivo
terraform/variables.tf
. - Execute o Terraform:
terraform apply
docker-compose exec pixpay-gateway psql -U postgres -d postgres -f scripts/init.sql
go run cmd/api/main.go
docker-compose exec pixpay-gateway go run cmd/api/main.go
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para obter detalhes.