Pular para o conteúdo principal

Laboratório

Pré-requisitos

  • PostgreSQL instalado e rodando:
docker run -p 5432:5432 -e POSTGRES_PASSWORD=secret postgres
  • Banco mydb criado:
psql -U postgres -c "CREATE DATABASE mydb;"

Configuração

  1. Use a estrutura do Módulo 09
lab6/
├── go.mod
├── cmd/
│   └── api/
│ ├── main.go
│       └── main_test.go
├── internal/
│   └── repo/
│ ├── memoria.go
│ ├── memoria_test.go
│ ├── postgres.go
│       └── postgres_test.go
├── models/
│   └── produto.go
├── migrations/
│ ├── 202506120001_create_produtos.up.sql
│  └── 202506120001_create_produtos.down.sql
├── docker-compose.yml
└── Dockerfile
  1. Adicione as dependências necessárias:
go get go.uber.org/zap
go get go.opentelemetry.io/otel
go get go.opentelemetry.io/otel/exporters/prometheus
go get go.opentelemetry.io/otel/sdk/metric
go get go.opentelemetry.io/otel/exporters/stdout/stdouttrace
go get go.opentelemetry.io/otel/sdk/trace
  1. Atualize o arquivo go.mod:
module github.com/seu-usuario/lab6

go 1.21

require (
github.com/gin-gonic/gin v1.10.0
github.com/go-playground/validator/v10 v10.22.0
github.com/google/uuid v1.6.0
gorm.io/driver/postgres v1.5.9
gorm.io/gorm v1.25.12
github.com/golang-migrate/migrate/v4 v4.17.1
go.uber.org/zap v1.27.0
go.opentelemetry.io/otel v1.28.0
go.opentelemetry.io/otel/exporters/prometheus v0.50.0
go.opentelemetry.io/otel/sdk/metric v1.28.0
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0
go.opentelemetry.io/otel/sdk/trace v1.28.0
)

Para download do código-fonte, clique aqui!