Implementação de uma API RESTful de pagamentos multi-gateway desenvolvida com AdonisJS.
O objetivo do projeto é processar compras tentando os gateways por ordem de prioridade. Se o primeiro gateway falhar, a aplicação tenta o próximo. Quando algum gateway responde com sucesso, a API retorna sucesso para a compra.
O código da aplicação está na pasta api-de-pagamento.
Principais pontos implementados:
- autenticação com token
- compra pública
- fallback entre dois gateways
- produtos, clientes, usuários e transações persistidos em banco
- reembolso
- controle de acesso por roles
- testes automatizados
- Docker Compose com app, MySQL e mocks dos gateways
- AdonisJS
- TypeScript
- Lucid ORM
- VineJS
- MySQL
- Docker Compose
- Japa
- api-de-pagamento: aplicação principal
Entre na pasta da aplicação:
cd api-de-pagamento
docker compose up --buildAPI disponível em:
http://localhost:3333Entre na pasta da aplicação:
cd api-de-pagamento
npm install
node ace migration:run
node ace db:seed
npm run devNa pasta da aplicação:
npm testBase URL:
/api/v1Rotas públicas:
POST /auth/signupPOST /auth/loginGET /productsPOST /purchases
Rotas privadas:
GET /gatewaysPATCH /gateways/:id/togglePATCH /gateways/:id/priorityGET /usersPOST /usersGET /clientsGET /clients/:idGET /transactionsGET /transactions/:idPOST /transactions/:id/refund
- cadastro, login e logout
- compra com valor obtido a partir do produto salvo no banco
- integração com dois gateways externos
- fallback automático entre gateways
- CRUD de produtos
- CRUD de usuários
- listagem de clientes
- listagem e detalhe de transações
- reembolso
- testes dos fluxos críticos
- ambiente com Docker Compose
- compra com múltiplos produtos e quantidades
- cobertura de testes mais ampla para todos os endpoints
- refinamentos extras de documentação
O README técnico completo, com:
- requisitos
- instalação detalhada
- detalhamento de rotas
- dificuldades encontradas
- implementações e pendências
- notas sobre TDD
está em:
- api-de-pagamento/README.md