11
22# Bullet Cloud API: E-commerce Backend
33[ ![ CodeQL Advanced] ( https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/codeql.yml/badge.svg )] ( https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/codeql.yml )
4+ [ ![ Go] ( https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/go.yml/badge.svg )] ( https://github.com/Bulletdev/bullet-cloud-api/actions/workflows/go.yml )
45[ ![ Quality Gate Status] ( https://sonarcloud.io/api/project_badges/measure?project=Bulletdev_Arremate-certo&metric=alert_status )] ( https://sonarcloud.io/summary/new_code?id=Bulletdev_Arremate-certo )
56![ Go Version] ( https://img.shields.io/github/go-mod/go-version/Bulletdev/go-cart-api?color=00ADD8&labelColor=000000 )
67![ License] ( https://img.shields.io/badge/license-GPL--3.0-blue )
78
8- Uma API RESTful de alta performance desenvolvida em Go, projetada sob princípios de Clean Architecture. Focada em segurança (IAM), escalabilidade e gestão de ecossistemas de e-commerce modernos .
9+ 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 .
910
1011---
1112
12- ## Stack
13+ ## Arquitetura e Design System
14+ O projeto implementa o padrão ** Hexagonal / Clean Architecture** , garantindo total desacoplamento entre a lógica de negócio e os provedores de infraestrutura.
1315
14- | Camada | Tecnologia |
15- | :--- | :--- |
16- | ** Linguagem** | Go (1.22+) |
17- | ** Roteamento** | Gorilla Mux |
18- | ** Persistência** | PostgreSQL (via pgx/v5) |
19- | ** Segurança** | JWT (v5) & Bcrypt |
20- | ** Migrações** | Golang-migrate |
21- | ** Observabilidade** | Prometheus & Grafana (Planned) |
16+
17+
18+ ### Core Principles
19+ - ** DevSecOps Integrado:** CodeQL e análise estática SonarCloud no pipeline de CI.
20+ - ** Data Integrity:** Controle de transações ACID no PostgreSQL e migrações versionadas.
21+ - ** IAM:** Autenticação via JWT (v5) e hashing robusto com Bcrypt.
22+ - ** Scalability:** Design stateless e interfaces para repositórios facilitando substituição de DB ou Mocking em testes.
2223
2324---
2425
25- ## Arquitetura e Design
26- A aplicação implementa o padrão ** Hexagonal / Clean Architecture** , isolando a lógica de negócio (Domain/Repositories) da infraestrutura e dos transportes (Handlers/Middlewares).
26+ ## Guia de Uso (Exemplos Rápidos)
2727
28+ <details >
29+ <summary ><b >Autenticação e Registro</b ></summary >
2830
31+ ** Registrar novo usuário:**
32+ ``` bash
33+ curl -X POST http://localhost:4444/api/auth/register \
34+ -H " Content-Type: application/json" \
35+ -d
' {"name":"Michael Bullet","email":"[email protected] ","password":"senha_segura"}' 2936
30- ### Destaques do Projeto
31- - ** DevSecOps Ready:** CodeQL e análise estática via SonarCloud integrados ao CI/CD.
32- - ** Data Integrity:** Controle rigoroso de transações e migrações versionadas.
33- - ** RESTful Design:** Endpoints padronizados com prefixo ` /api ` e status codes semânticos.
34- - ** High Testability:** Handlers desacoplados via interfaces para facilitação de mocks e testes unitários.
37+ ```
3538
36- ---
39+ ** Login e Obtenção de Token: **
3740
38- ## Visão Geral da API
41+ ``` bash
42+ TOKEN=$( curl -s -X POST http://localhost:4444/api/auth/login \
43+ -H " Content-Type: application/json" \
44+ -d ' {"email":"[email protected] ","password":"senha_segura"}' | jq -r .token) 3945
40- <details >
41- <summary ><b > Autenticação e Gestão de Identidade (IAM)</b ></summary >
46+ ```
4247
43- | Método | Endpoint | Descrição |
44- | :--- | :--- | :--- |
45- | POST | ` /api/auth/register ` | Registro de novo usuário |
46- | POST | ` /api/auth/login ` | Autenticação e emissão de JWT |
47- | GET | ` /api/users/me ` | Recupera perfil do portador do token |
4848</details >
4949
5050<details >
51- <summary ><b > Carrinho de Compras e Pedidos</b ></summary >
52-
53- | Método | Endpoint | Descrição |
54- | :--- | :--- | :--- |
55- | GET | ` /api/cart ` | Visualiza o estado atual do carrinho |
56- | POST | ` /api/cart/items ` | Adiciona ou incrementa itens |
57- | DELETE | ` /api/cart/items/{id} ` | Remove item específico |
58- | POST | ` /api/orders ` | Checkout e conversão de carrinho em pedido |
59- | GET | ` /api/orders ` | Lista histórico de pedidos |
60- </details >
51+ <summary ><b >Gerenciamento de Carrinho</b ></summary >
52+
53+ ** Adicionar Item:**
54+
55+ ``` bash
56+ curl -X POST http://localhost:4444/api/cart/items \
57+ -H " Authorization: Bearer $TOKEN " \
58+ -H " Content-Type: application/json" \
59+ -d ' {"product_id":"UUID_DO_PRODUTO","quantity":2}'
60+
61+ ```
62+
63+ ** Checkout (Gerar Pedido):**
64+
65+ ``` bash
66+ curl -X POST http://localhost:4444/api/orders -H " Authorization: Bearer $TOKEN "
67+
68+ ```
6169
62- <details >
63- <summary ><b > Catálogo de Produtos</b ></summary >
64-
65- | Método | Endpoint | Descrição |
66- | :--- | :--- | :--- |
67- | GET | ` /api/products ` | Listagem geral com filtros (Planned) |
68- | GET | ` /api/products/{id} ` | Detalhes técnicos do produto |
69- | POST | ` /api/products ` | Criação de novos SKUs (Admin Only) |
70- | GET | ` /api/categories ` | Listagem de categorias ativas |
7170</details >
7271
7372---
7473
75- ## Configuração e Execução
74+ ## Documentação da API
75+
76+ | Módulo | Método | Endpoint | Protegido |
77+ | --- | --- | --- | --- |
78+ | ** Auth** | POST | ` /api/auth/login ` | No |
79+ | ** Users** | GET | ` /api/users/me ` | Yes |
80+ | ** Products** | GET | ` /api/products ` | No |
81+ | ** Cart** | POST | ` /api/cart/items ` | Yes |
82+ | ** Orders** | GET | ` /api/orders ` | Yes |
83+
84+ > [ Consulte a Documentação Arquitetural Detalhada] ( https://www.google.com/search?q=./docs/README.md ) para diagramas de ERD e fluxos de autenticação.
85+
86+ ---
87+
88+ ## Configuração do Ambiente
7689
7790### Pré-requisitos
78- - Go 1.22+
79- - PostgreSQL
80- - [ Golang-migrate CLI] ( https://github.com/golang-migrate/migrate )
8191
82- ### Setup Rápido
83- 1 . ** Clone & Install:**
84- ``` bash
85- git clone [https://github.com/bulletdev/go-cart-api.git](https://github.com/bulletdev/go-cart-api.git)
86- cd go-cart-api && go mod tidy
92+ * Go 1.22+
93+ * PostgreSQL (ou Supabase)
94+ * [ Golang-migrate CLI] ( https://github.com/golang-migrate/migrate )
95+
96+ ### Setup
97+
98+ 1 . ** Instalação:**
99+ ``` bash
100+ git clone [https://github.com/bulletdev/go-cart-api.git](https://github.com/bulletdev/go-cart-api.git)
101+ cd go-cart-api && go mod tidy
87102
88103```
89104
90- 2 . ** Environment: **
91- Crie um arquivo ` .env ` baseado nas variáveis abaixo:
105+
106+ 2 . ** Ambiente ( .env): **
92107``` env
93- DATABASE_URL="postgres://user:pass@host:5432/db?sslmode=require"
94- JWT_SECRET="sua_chave_secreta_aqui"
95- API_PORT=4444
108+ DATABASE_URL="postgres://usuario:senha@host:5432/database"
109+ JWT_SECRET="seu_segredo_jwt"
96110
97111```
98112
@@ -104,7 +118,7 @@ migrate -database ${DATABASE_URL} -path internal/database/migrations up
104118```
105119
106120
107- 4 . ** Run :**
121+ 4 . ** Execução :**
108122``` bash
109123go run cmd/main.go
110124
@@ -114,9 +128,9 @@ go run cmd/main.go
114128
115129---
116130
117- ## Qualidade de Código
131+ ## Qualidade e Testes
118132
119- Execução de suíte de testes unitários:
133+ Suíte de testes unitários focada em Handlers e Lógica de Negócio :
120134
121135``` bash
122136go test -v ./internal/handlers/...
@@ -125,15 +139,10 @@ go test -v ./internal/handlers/...
125139
126140---
127141
128- ## 📄 Licença
129-
130- Distribuído sob a licença ** GNU General Public License v3.0** . Veja ` LICENSE ` para mais informações.
131-
132- ## Contato
133-
134- Michael Bullet
142+ ## 📄 Licença e Contato
135143
136- 137- [ michaelbullet.com] ( https://www.michaelbullet.com )
144+ * ** Licença:** GNU General Public License v3.0
145+ * ** Autor:
** Michael Bullet -
[ [email protected] ] ( mailto:[email protected] ) 146+ * ** Web:** [ michaelbullet.com] ( https://www.michaelbullet.com )
138147
139148```
0 commit comments