Routing

Semua rute API didefinisikan dalam rute/api.ns — file yang dimuat setelah kontroler didaftarkan.

Struktur rute/api.ns

rute/api.ns
// rute/api.ns — Definisi semua rute API

// ─── Rute Status (publik) ─────────────────────────────────
tambah_rute(app, "GET", "/", fungsi(req) {
    kembalikan resp_ok({"versi": VERSI_APP, "status": "aktif"}, "OK")
})

// ─── Auth (publik) ────────────────────────────────────────
tambah_rute(app, "POST", "/api/auth/daftar", aksi_daftar)
tambah_rute(app, "POST", "/api/auth/masuk",  aksi_masuk)

// ─── Profil (butuh login) ─────────────────────────────────
tambah_rute(app, "GET", "/api/auth/profil", aksi_profil)

// ─── CRUD Pengguna (butuh admin) ──────────────────────────
tambah_rute(app, "GET",    "/api/pengguna", aksi_pengguna_semua)
tambah_rute(app, "POST",   "/api/pengguna", aksi_pengguna_simpan)
tambah_rute(app, "PUT",    "/api/pengguna", aksi_pengguna_perbarui)
tambah_rute(app, "DELETE", "/api/pengguna", aksi_pengguna_hapus)

// ─── CRUD Produk ──────────────────────────────────────────
tambah_rute(app, "GET",    "/api/produk", aksi_produk_semua)
tambah_rute(app, "POST",   "/api/produk", aksi_produk_simpan)
tambah_rute(app, "PUT",    "/api/produk", aksi_produk_perbarui)
tambah_rute(app, "DELETE", "/api/produk", aksi_produk_hapus)

Parameter Rute

ParameterTipeDeskripsi
appObjekServerInstance server yang dibuat dengan server_baru(port)
"GET"TeksMetode HTTP: GET, POST, PUT, DELETE, PATCH
"/api/path"TeksPath URL endpoint
aksi_namaFungsiFungsi handler dari kontroler

Query Parameters

Membaca query param ?kategori=laptop
// GET /api/produk?kategori=laptop&halaman=2
tambah_rute(app, "GET", "/api/produk", fungsi(req) {
    buat kategori = param_query(req, "kategori")  // "laptop"
    buat halaman  = param_query(req, "halaman")   // "2"
    buat kunci    = param_query(req, "q")         // "" jika tidak ada
    tampilkan("Filter kategori:", kategori)
})