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
No description provided
Readme 874 KiB
Languages
Go 100%