Cara run?
go run main.go- kalau mau tes--misalnya--. Buka
localhost:port/swagger/index.html
# clone the repository
git clone [this_git_url]
# set up environment
cp .env.example .env
# go run
go run main.go
Create a .env file in the root directory with the following variables:
DB_HOST=localhost
DB_USER=user
DB_PASSWORD=pw
DB_NAME=ps3t
DB_PORT=5432 #Example: postgresql
PORT=3000
MODE=DEBUG
PROD_HOST=#Your production host
DEBUG_HOST=0.0.0.0
In Go, there are two ways to run the app
# For build, run this command
go build -o .build/<name-of-build.extension>
# NOTE: it is important to put the build inside of the .build folder
# to ensure the gitignore caught up with the files
# After build go application
.build/<name-of-build.extension># just do this
go run main.go
# then your operating system asking for firewall permission
docker-compose up -d
# Dengan flag -d untuk menjalankan container di background (detached mode).
## Dengan menggunakan -d, terminal akan langsung kembali ke prompt tanpa menampilkan log container di terminal.
## Container akan terus berjalan di background setelah perintah ini dijalankan.
# Kalau mau tambah flag --build jika ada perubahan pada Dockerfile
docker-compose up -d --build
## Flag --build digunakan untuk memaksa Docker Compose membangun ulang image sebelum menjalankan container.
## Biasanya digunakan ketika ada perubahan pada Dockerfile atau file yang terkait dengan image.
## Perintah ini akan melakukan build ulang image dan kemudian menjalankan container di background.
# Jika ingin menggunakan container database postgres di local bisa menggunakan argument berikut: --profile local
contoh: docker compose --profile local up -d --build
One the applicatio is running, you can access the Swagger API documentation at:
http://localhost:3000/swagger/index.html
Caranya adalah
- Setup dari dependensi dasar sebuah service yang sekiranya tidak membutuhkan dependensi service lain, bisa cek pada
di/injector.go - Siapkan constructor dari sebuah service
- Siapkan injector dengan memanggilkan
MustInvokepada servis yang di-dependensi - Kembali pada
di/injector.godan lakukan dengando.Providediurutan terbawah setelah service yang di-dependensikan - Jika service tersebut dibutukan pada
routerlakukan dengan cara seperti ini, contoh
authHandler := do.MustInvoke[authHandler.AuthorizationHandler](di.Injector)cara melakukan migrasi database menggunakan golang-migrate dengan opsi manual atau otomatis melalui konfigurasi di file .env.
- Pastikan Anda telah menginstall CLI
golang-migrate. - File
.envmemiliki konfigurasi berikut:
ENABLE_AUTO_MIGRATION=FALSEJika ENABLE_AUTO_MIGRATION diset ke FALSE, migrasi perlu dijalankan secara manual menggunakan CLI.
-
Migration Up
Gunakan perintah berikut untuk menjalankan semua migrasi ke versi terbaru:
migrate -database "postgres://username:password@localhost:5432/dbname?sslmode=disable" -path database/migrations upGantilah
username,password,localhost,5432, dandbnamedengan informasi koneksi database Anda. -
Migration Down
Gunakan perintah berikut untuk menurunkan versi migrasi satu langkah ke bawah:
migrate -database "postgres://username:password@localhost:5432/dbname?sslmode=disable" -path database/migrations downGantilah
username,password,localhost,5432, dandbnamedengan informasi koneksi database Anda. -
Membuat File Migration Baru
Untuk membuat file migrasi baru, gunakan perintah berikut:
migrate create -ext sql -dir database/migrations <NameMigrationFile>
Jika ENABLE_AUTO_MIGRATION diset ke TRUE, migrasi akan dijalankan secara otomatis ketika aplikasi dijalankan.