Skip to content

Bulletdev/go-cart-api

Repository files navigation

Bullet Cloud API: E-commerce Backend

CodeQL Advanced Go Quality Gate Status Go Version License

API RESTful de alta performance desenvolvida em Go, focada em segurança (IAM), escalabilidade e padrões de Clean Architecture. Ideal para ecossistemas de e-commerce que exigem auditoria e integridade de dados.


Arquitetura e Design System

O projeto implementa o padrão Hexagonal / Clean Architecture, garantindo total desacoplamento entre a lógica de negócio e os provedores de infraestrutura.

Core Principles

  • DevSecOps Integrado: CodeQL e análise estática SonarCloud no pipeline de CI.
  • Data Integrity: Controle de transações ACID no PostgreSQL e migrações versionadas.
  • IAM: Autenticação via JWT (v5) e hashing robusto com Bcrypt.
  • Scalability: Design stateless e interfaces para repositórios facilitando substituição de DB ou Mocking em testes.

Guia de Uso (Exemplos Rápidos)

Autenticação e Registro

Registrar novo usuário:

curl -X POST http://localhost:4444/api/auth/register \
-H "Content-Type: application/json" \
-d '{"name":"Michael Bullet","email":"[email protected]","password":"senha_segura"}'

Login e Obtenção de Token:

TOKEN=$(curl -s -X POST http://localhost:4444/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"senha_segura"}' | jq -r .token)
Gerenciamento de Carrinho

Adicionar Item:

curl -X POST http://localhost:4444/api/cart/items \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"product_id":"UUID_DO_PRODUTO","quantity":2}'

Checkout (Gerar Pedido):

curl -X POST http://localhost:4444/api/orders -H "Authorization: Bearer $TOKEN"

Link para Documentação Swagger Antiga (Desatualizada)

Documentação da API

Módulo Método Endpoint Protegido
Auth POST /api/auth/login No
Users GET /api/users/me Yes
Products GET /api/products No
Cart POST /api/cart/items Yes
Orders GET /api/orders Yes

para diagramas de ERD e fluxos de autenticação.


Configuração do Ambiente

Pré-requisitos

Setup

  1. Instalação:
git clone [https://github.com/bulletdev/go-cart-api.git](https://github.com/bulletdev/go-cart-api.git)
cd go-cart-api && go mod tidy
  1. Ambiente (.env):
DATABASE_URL="postgres://usuario:senha@host:5432/database"
JWT_SECRET="seu_segredo_jwt"
  1. Database Migrations:
migrate -database ${DATABASE_URL} -path internal/database/migrations up
  1. Execução:
go run cmd/main.go

Qualidade e Testes

Suíte de testes unitários focada em Handlers e Lógica de Negócio:

go test -v ./internal/handlers/...

📄 Licença e Contato

About

RESTful Go API for eccomerce management

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages