API simples em Go para gerenciar produtos usando PostgreSQL e Docker/Podman.
- Go 1.22+
- PostgreSQL 12
- Podman ou Docker
github.com/lib/pq
go-api-estoque/
│── cmd/
│ └── main.go
│── controller/
│ └── product_controller.go
│── db/
│ └── connection.go
│── init-db/
│ └── init.sql
│── model/
│ └── product.go
| └── response.go
│── repository/
│ └── product_repository.go
│── usecase/
│ └── products_usecase.go
│── docker-compose.yml
│── Dockerfile
│── go.mod
│── go.sum
│── README.md
Criação da tabela:
CREATE TABLE product (
id SERIAL PRIMARY KEY,
product_name VARCHAR(50) NOT NULL,
price NUMERIC(10,2) NOT NULL
);Subir PostgreSQL:
podman run -d \
--name go_db \
-e POSTGRES_PASSWORD=1234 \
-p 5432:5432 \
postgres:12
Buildar a API:
podman build -t go-api-estoque .
Rodar a API:
podman run -d \
--name go-app \
--link go_db \
-p 8000:8000 \
go-api-estoque
POST /products
Body:
{
"product_name": "Teclado",
"price": 199.90
}GET /products
GET /product/Id
DELETE /product/Id
Arquivo db/connection.go:
host = "go_db"
port = 5432
user = "postgres"
password = "1234"
dbname = "postgres"
Luiz — Projeto simples para estudo de Go + PostgreSQL + Containers.