Golang Simple Boilerplate with Gofiber & Gorm
- config/
- controller/
- entity/
- exception/
- helper/
- middleware/
- model/
- repository/
- seed/
- service/
- test/
- validation/
- .env.example
- .env
- .env.test
- .gitignore
- main.go
- README.md
- config/ - Konfigurasi API, contohnya konfigurasi koneksi Elasticsearch, Mysql, MongoDB, Redis, Kafka, etc.
- controller/ - Tempat Controller semua route Gofiber, contohnya mengatur endpoint, request ke Service, etc.
- entity/ - Entity yang biasanya berisi field-field yang akan digunakan/dipanggil dari database.
- contohnya insert/get data dari redis, ubah type string ke type int, etc.
- middleware/ - Mirip seperti helper, middleware biasa digunakan pada Controller untuk diproses sebelum controller berjalan/selesai.
- model/ - Mirip seperti entity, model biasanya digunakan untuk memberikan response atau sebagai value return.
- repository/ - Tempat proses transaksi dari/ke database.
- seed/ -
- service/ - Sebagai jembatan antara Controller dan Service. Biasa digunakan untuk handle/validasi data sebelum dilanjut ke Repository.
- test/ - Tempat file-file Unit Test Golang.
- validation/ - Mirip seperti helper, validation biasanya digunakan/dipanggil di Service.
- .env.example - Contoh/format environment untuk disalin
- .env - Environment utama/production
- .env.test - Environment untuk testing
- .gitignore - Ignore file/folder saat push ke git
- main.go - File utama/main Golang, tempat panggil Repository, Service, Controller.
- README.md - File README
- Lebih baik gunakan Service untuk logic sebelum masuk ke repository.
- Lebih baik gunakan Struct dari Model untuk Response, supaya lebih mudah penggunaannya.
- Selalu gunakan .env.test untuk Unit Testing.