https://github.com/samber/do-template-api
🛠️ API boilerplate showcasing github.com/samber/do
https://github.com/samber/do-template-api
api boilerplate container dependency-injection di dig do fix go graceful-shutdown healthcheck injector invoke ioc provide template wire
Last synced: about 1 month ago
JSON representation
🛠️ API boilerplate showcasing github.com/samber/do
- Host: GitHub
- URL: https://github.com/samber/do-template-api
- Owner: samber
- License: mit
- Created: 2025-09-25T12:36:14.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-29T18:19:53.000Z (3 months ago)
- Last Synced: 2026-02-15T12:33:32.324Z (about 2 months ago)
- Topics: api, boilerplate, container, dependency-injection, di, dig, do, fix, go, graceful-shutdown, healthcheck, injector, invoke, ioc, provide, template, wire
- Language: Go
- Homepage: https://github.com/samber/do
- Size: 54.7 KB
- Stars: 5
- Watchers: 0
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# API boilerplate showcasing github.com/samber/do


[](https://goreportcard.com/report/github.com/samber/do)
[](./LICENSE)
**⚙️ 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.
**See also:**
- [do-template-worker](https://github.com/samber/do-template-worker)
- [do-template-cli](https://github.com/samber/do-template-cli)
## 🚀 Install
Clone the repo and install dependencies:
```bash
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
```sh
# install deps
make deps
make deps-tools
# compile
make build
# build with hot-reload
make watch-run
# test with hot-reload
make watch-test
```
## 🤠 `do` documentation
- [GoDoc: https://godoc.org/github.com/samber/do/v2](https://godoc.org/github.com/samber/do/v2)
- [Documentation](https://do.samber.dev/docs/getting-started)
## 💫 Show your support
Give a ⭐️ if this project helped you!
[](https://github.com/sponsors/samber)
## 📝 License
Copyright © 2025 [Samuel Berthe](https://github.com/samber).
This project is [MIT](./LICENSE) licensed.