Template Modern untuk REST API dengan Golang
Skeleton project yang powerful dan scalable untuk membangun REST API dengan Go. Dilengkapi dengan best practices, clean architecture, dan tools modern untuk development yang cepat.
Go API Skeleton adalah template production-ready untuk membangun REST API menggunakan Golang. Project ini mengimplementasikan clean architecture dengan separation of concerns yang jelas, memudahkan development, testing, dan maintenance aplikasi Anda.
Struktur project yang terorganisir dengan separation of concerns yang jelas. Handler, Service, dan Repository layer yang terpisah untuk maintainability maksimal.
Menggunakan Echo, framework Go yang high-performance dan minimalist. Dilengkapi dengan middleware untuk CORS, logging, dan recovery.
Support untuk PostgreSQL dan MySQL dengan sqlx. Konfigurasi database yang mudah dan connection pooling yang optimal.
Konfigurasi aplikasi menggunakan Viper dengan format YAML. Mudah dikelola dan mendukung multiple environments.
Feature-based folder structure yang memudahkan scaling. Setiap feature memiliki entity, handler, service, dan repository sendiri.
Pre-configured middleware untuk CORS, logging, dan panic recovery. Siap untuk ditambahkan authentication dan authorization.
Project ini mengikuti Clean Architecture dengan struktur sebagai berikut:
skeleton/
├── cmd/api/ # Entry point aplikasi
│ └── main.go # Main application
├── internal/ # Private application code
│ ├── api/ # Router & middleware
│ │ ├── router.go
│ │ └── middleware.go
│ ├── features/ # Feature modules
│ │ └── auth/ # Contoh: Auth feature
│ │ ├── entity.go
│ │ ├── handler.go
│ │ ├── service.go
│ │ └── repository.go
│ └── shared/ # Shared utilities
│ ├── request.go
│ └── response.go
├── pkg/ # Public reusable packages
│ ├── config/ # Configuration management
│ ├── logger/ # Logging utilities
│ ├── migration/ # Database migrations
│ └── utils/ # Helper functions
├── app/ # Static files & frontend
├── docs/ # Documentation
├── test/ # Test files
├── go.mod
└── go.sum
Setiap layer memiliki tanggung jawab yang jelas:
- Handler: Menangani HTTP request/response
- Service: Business logic dan validasi
- Repository: Database operations
- Entity: Data models dan structures
| Technology | Deskripsi |
|---|---|
| Go | Modern Go version |
| Echo | High performance web framework |
| sqlx | Database toolkit |
| PostgreSQL | Primary database (optional) |
| MySQL | Alternative database (optional) |
| Viper | Configuration management |
Built with ❤️ using Go
🌐 Live Demo | 📦 GitHub Repository
⭐ Star this repository if you find it helpful!