Belajar REST API dengan bahasa pemrograman Go.
Projek ini sudah siap dijalankan dan dapat dimodifikasi sesuai kebutuhan masing-masing. Adapun kemampuan projek ini:
- Dapat menjadi backend dari REST API dan GRPC.
- Dapat mengoperasikan message broker, seperti mengirim dan menerima message.
- Dapat menjadi service dalam rangkaian microservices.
- Dapat menyediakan dokumentasi API melalui Swagger.
- Support berbagai koneksi database, seperti MySQL, PostgreSQL, SQLite, dan SQL Server.
- Support migrasi database dalam bentuk file SQL.
- Support dependency injection.
Struktur proyek ini mengikuti konsep-konsep arsitektural seperti:
- DRY (Don't Repeat Yourself)
- SOLID Principle
- Clean Architecture
Nama | Kegunaan |
---|---|
Go | Bahasa Pemrograman |
Fiber | Web Framework |
GRPC | Transport RPC |
RabbitMQ | Message Broker |
PostgreSQL, MySQL, MariaDB, SQLite | Database Management System |
Gorm | Object-Relational Mapper |
Jwt | Token untuk Otentikasi |
Nama | Kegunaan |
---|---|
Validator | Validasi data |
Soda CLI | Migrasi database |
Swag | Otomatis generate dokumentasi REST API (swagger) |
GNU/Make | Build tool |
Agar projek dapat dijalankan, diperlukan beberapa hal untuk dipersiapkan, antara lain:
- Menjalankan migration dengan menyesuaikan akses database.
./bin/soda m -c db/database.yml -p db/migrations
- Clone projek ke komputer lokal, dengan perintah:
git clone https://github.com/hadihammurabi/belajar-go-rest-api
- Menjalankan projek dengan mode development (pengembangan) dengan perintah:
make dev
- Clone projek ke komputer lokal, dengan perintah:
git clone https://github.com/hadihammurabi/belajar-go-rest-api
- Menjalankan projek siap guna dengan perintah:
make && ./main