RESTForge

Quick Start

Panduan cepat membuat dan menguji endpoint API pertama dengan RESTForge

Halaman ini membahas cara menjalankan server RESTForge dan menguji endpoint API yang sudah di-generate.

Menjalankan Server (Starting the Server)

npx restforge --project=mini-inventory --config=db-connection.env

Parameter Runtime

ParameterDeskripsi
--projectNama project yang akan dijalankan
--configFile konfigurasi database (di folder config/)
--portPort server (opsional, override dari config)
--watchAktifkan auto-restart saat file berubah (Node.js >= 22)
--clusterCluster mode dengan auto-detect CPU cores
--workers=NCluster mode dengan N workers

Output yang diharapkan:

============================================================
SERVER READY
============================================================

API Server listening on port 3032
Base URL: http://localhost:3032

Available endpoints:
  - /api/mini-inventory/supplier/datatables
  - /api/mini-inventory/supplier/create
  - /api/mini-inventory/supplier/update
  - /api/mini-inventory/supplier/delete
  - /api/mini-inventory/supplier/first
  - /api/mini-inventory/supplier/lookup
  - /api/mini-inventory/supplier/read

Pola URL Endpoint (Endpoint URL Pattern)

Seluruh endpoint mengikuti pola:

POST /api/{project}/{endpoint}/{action}

Contoh untuk project mini-inventory dengan endpoint supplier:

ActionURL
datatablesPOST /api/mini-inventory/supplier/datatables
createPOST /api/mini-inventory/supplier/create
updatePOST /api/mini-inventory/supplier/update
deletePOST /api/mini-inventory/supplier/delete
firstPOST /api/mini-inventory/supplier/first
lookupGET /api/mini-inventory/supplier/lookup
readPOST /api/mini-inventory/supplier/read

Menguji Endpoint (Testing Endpoints)

Menggunakan curl

Health check:

curl http://localhost:3032/health

Datatables (data dengan pagination):

curl -X POST http://localhost:3032/api/mini-inventory/supplier/datatables \
  -H "Content-Type: application/json" \
  -d '{"draw":1,"start":0,"length":10,"search":{"value":""}}'

Create (buat data baru):

curl -X POST http://localhost:3032/api/mini-inventory/supplier/create \
  -H "Content-Type: application/json" \
  -d '{"supplier_code":"SUP001","supplier_name":"PT Supplier Utama","is_active":true}'

First (baca satu record):

curl -X POST http://localhost:3032/api/mini-inventory/supplier/first \
  -H "Content-Type: application/json" \
  -d '{"where":{"key":"supplier_id","value":"<id>"}}'

Menggunakan Postman

Generator secara otomatis membuat Postman collection di folder demo/:

  1. Buka Postman
  2. Klik Import dan pilih file demo/mini-inventory/postman_supplier.json
  3. Collection "Mini Inventory - Supplier" akan muncul di sidebar
  4. Klik request yang ingin diuji dan klik Send

Postman collection sudah berisi sample request body untuk setiap action.

Format Response (Response Format)

Response Berhasil (Action Standar)

{
  "success": true,
  "message": "Supplier created successfully",
  "data": {
    "supplier_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "supplier_code": "SUP001",
    "supplier_name": "PT Supplier Utama",
    "is_active": true
  },
  "timestamp": "2026-01-15T10:30:00.000Z"
}

Response Berhasil (Datatables)

Format datatables mengikuti standar jQuery DataTables:

{
  "draw": 1,
  "recordsTotal": 100,
  "recordsFiltered": 10,
  "data": [
    { "supplier_id": "...", "supplier_code": "SUP001", "supplier_name": "..." },
    { "supplier_id": "...", "supplier_code": "SUP002", "supplier_name": "..." }
  ]
}

Response Error

{
  "success": false,
  "message": "Supplier code already exists",
  "error": "duplicate key value violates unique constraint"
}

Pemecahan Masalah (Troubleshooting)

ErrorPenyebabSolusi
EADDRINUSE: address already in usePort sudah digunakan oleh proses lainHentikan proses yang menggunakan port tersebut atau ubah port di config
connect ECONNREFUSEDDatabase server tidak berjalanPastikan service database sudah di-start
Cannot find moduleModule belum di-generateJalankan restforge-cli create terlebih dahulu
CONFIGURATION ERRORFile config tidak lengkapPeriksa SERVER_ADDRESS dan SERVER_PORT di file config

On this page