Files
api-antrian-operasi/readme.md
renaldybrada 466a1606e9 update readme
2026-02-18 13:15:55 +07:00

80 lines
2.0 KiB
Markdown

# 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
```bash
cd <project_name>
go mod tidy
```
## Menjalankan postgres di docker
Jika menggunakan windows, pastikan docker desktop sudah berjalan.
````bash
docker compose up -d
````
## Generate dokumentasi swagger
Pastikan sudah menulis komentar dengan format dari swagger di handler endpoint
````bash
// masuk ke root project
cd <project_name>
swag init -g cmd/api/main.go -o docs
````
## Unit Testing
````bash
// masuk ke root project
cd <project_name>
go test -v ./internal/...
````
## Build project
````bash
// 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-<i><b>disabled</b></i> dengan cara memberikan nilai false di file `.env` bagian `KEYCLOAK_IS_ENABLE`
```
#KEYCLOAK CREDENTIAL
..
..
KEYCLOAK_IS_ENABLE=false
```