7819357450b442b7b1deb5d11058b20288d73e25
…
…
…
…
API ANTRIAN OPERASI
REST API menggunakan GO dengan framework GIN
Tech Stack
- Go
- Gin
- PostgreSQL
- Docker Compose
- Swagger (swaggo)
Struktur Folder
api-service/
├── 📁 cmd/
│ ├── api/main.go # Entry points aplikasi
├── 📁 docs/ # Output Dokumentasi swagger
├── 📁 internal/
| |__ config/ # File konfigurasi
| |__ database/ # Package fungsi database (connection, execution, etc)
| |__ domain/ # Core business logic
| |__ middleware/ # Package middleware
| |__ routes/ # Wiring untuk register semua routing yang dipakai
| |__ server/ # Inisiasi server API
| |__ shared/ # Fungsi umum yang bisa digunakan di berbagai domain
| |__ utils/ # Fungsi utilisasi untuk query builder
├── 📁 migrations/ # Folder query database (test-purpose)
| |__ DDL.sql/
| |__ seeds.sql/
Instalasi go package
cd <project_name>
go mod tidy
Menjalankan postgres di docker
Jika menggunakan windows, pastikan docker desktop sudah berjalan.
docker compose up -d
Generate dokumentasi swagger
Pastikan sudah menulis komentar dengan format dari swagger di handler endpoint
// masuk ke root project
cd <project_name>
swag init -g cmd/api/main.go -o docs
Unit Testing
// masuk ke root project
cd <project_name>
go test -v ./internal/...
Build project
// masuk ke root project
cd <project_name>
go build ./cmd/api
Disabled/Enabled Keycloak Authentication
Project ini menggunakan autentikasi dengan token dari keycloak. Untuk kebutuhan debugging yang tidak membutuhkan autentikasi, keycloak dapat di-disabled dengan cara memberikan nilai false di file .env bagian KEYCLOAK_IS_ENABLE
#KEYCLOAK CREDENTIAL
..
..
KEYCLOAK_IS_ENABLE=false
Description
Languages
Go
100%