A simple REST API boilerplate written in Go, including authentication, database, and email.
- 🔥 Framework: Echo
- 🔄 ORM: Ent
- 🥫 Database: PostgreSQL
- 📬 Mailing: SendGrid
- 🔑 Signing: JWT
- 🥔 Hashing: Bcrypt
e2e- E2E testent- ent schema filesentities- Domain modelshandlers- Echo handlersiservices- Interface of servicesiusecases- Interface of usecasesmservices- Structs for mocking servicesrouter- Routerservices- Implementation of servicesusecases- Implementation of usecases
Set environment variables in .env
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
JWT_PRIVATE_KEY="xxx" # ECDSA private key
JWT_PUBLIC_KEY="xxx" # ECDSA public key
SENDGRID_API_KEY="xxx"
MAILER_FROM="xxx"
TEST_CLEAR_DATABASE=on
TEST_GENERATE_CODE_FIXED_VALUE=123456
Generate ent code
go generate ./entLaunch database & API server
docker compose upRun tests
go test -v ./...