Code Monkey home page Code Monkey logo

pixpay's Introduction

PixPay Gateway

Descrição

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.

Funcionalidades

  1. Roteamento de Solicitações: Encaminha solicitações dos clientes para o serviço apropriado no backend e facilita o balanceamento de carga.
  2. Autenticação e Autorização: Verifica se as solicitações são autenticadas e autorizadas antes de encaminhá-las para os serviços internos.
  3. Agregação de Respostas: Combina respostas de múltiplos serviços backend em uma única resposta para o cliente.
  4. 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).
  5. 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.
  6. Monitoramento e Logging: Coleta métricas e logs das solicitações para monitoramento, análise e troubleshooting.
  7. Cache: Armazena em cache as respostas de serviços backend para melhorar o desempenho e reduzir a carga nos serviços.

Estrutura do Projeto

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

Requisitos

  • Go 1.22+
  • Docker
  • Docker Compose
  • Terraform
  • PostgreSQL

Configuração

Banco de Dados

  1. Crie o banco de dados PostgreSQL utilizando o script scripts/init.sql.
  2. Configure as variáveis de ambiente no arquivo .env com as credenciais do banco de dados.

Docker

  1. Construa e inicie os containers:
    docker-compose up --build
  2. Acesse o servidor Docker:
    docker-compose exec pixpay-gateway bash
  3. Inicie o serviço:
    go run cmd/api/main.go

Terraform

  1. Inicialize o Terraform:
    terraform init
  2. Configure as variáveis de ambiente no arquivo terraform/variables.tf.
  3. Execute o Terraform:
    terraform apply

Comandos

Criar Banco de Dados

docker-compose exec pixpay-gateway psql -U postgres -d postgres -f scripts/init.sql

Iniciar Servidor

go run cmd/api/main.go

Iniciar Servidor Docker

docker-compose exec pixpay-gateway go run cmd/api/main.go

Licença

Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para obter detalhes.

pixpay's People

Contributors

aleksanderpalamar avatar

Stargazers

 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.