You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
⚙️ A comprehensive API template demonstrating the github.com/samber/do dependency injection library.
A comprehensive API template project demonstrating the full power of the github.com/samber/do dependency injection library. This project implements a complete REST API with PostgreSQL integration, showcasing type-safe dependency injection, modular architecture, and real-world web application concerns.
Perfect as a starting point for new Go web projects or as a learning resource for understanding dependency injection patterns in API applications.
git clone --depth 1 --branch main https://github.com/samber/do-template-api.git your-project-name
cd your-project-name
docker compose up -d
make deps
make deps-tools
💡 Features
Type-safe dependency injection - Service registration and resolution using samber/do
Modular architecture - Clean separation of concerns with dependency tree visualization
REST API framework - Built with Gin for robust HTTP web services
Configuration management - Environment-based configuration with dependency injection
PostgreSQL integration - Complete database setup with connection pooling and migrations
Repository pattern - Data access layer with injected dependencies
Service layer - Business logic with proper dependency management
Application lifecycle - Health checks and graceful shutdown handling
Comprehensive error handling - Structured logging and error management
Production-ready - Ready to fork and customize for your next API project
Extensive documentation - Inline comments explaining every do library feature
🚀 Contributing
# install deps
make deps
make deps-tools
# compile
make build
# build with hot-reload
make watch-run
# test with hot-reload
make watch-test