HTTP Server REST API
NusaScript memiliki web server bawaan untuk membuat REST API dengan mudah.
Fungsi HTTP Server
| Fungsi | Parameter | Keterangan |
|---|---|---|
server_baru(port) | port: bilangan | Buat server baru di port tertentu |
rute(server, metode, jalan, handler) | - | Daftarkan route handler |
jalankan_server(server) | server | Jalankan server (blocking) |
Server Paling Sederhana
server-dasar.ns
buat app = server_baru(8080)
rute(app, "GET", "/", fungsi(req) {
kembalikan ke_json(peta("pesan", "Halo dari NusaScript!"))
})
tampilkan("Server berjalan di http://localhost:8080")
jalankan_server(app)
Response GET http://localhost:8080/
{"pesan":"Halo dari NusaScript!"}Fungsi Request Helpers
| Fungsi | Keterangan | Contoh Nilai |
|---|---|---|
metode_req(req) | Method HTTP | "GET", "POST" |
jalan_req(req) | URL path | "/api/produk" |
query(req, nama) | Query string parameter | query(req, "id") |
badan_req(req) | Request body (JSON string) | '{"nama":"Budi"}' |
header_req(req, nama) | HTTP header | header_req(req,"authorization") |
API dengan Multiple Routes
api-lengkap.ns
buat app = server_baru(8080)
// GET - Ambil daftar
rute(app, "GET", "/api/produk", fungsi(req) {
buat data = [
peta("id", 1, "nama", "Laptop", "harga", 15000000),
peta("id", 2, "nama", "Mouse", "harga", 250000)
]
kembalikan ke_json(peta("data", data, "total", panjang(data)))
})
// POST - Tambah data baru
rute(app, "POST", "/api/produk", fungsi(req) {
buat body = dari_json(badan_req(req))
buat nama = ambil(body, "nama")
jika nama == nihil {
kembalikan ke_json(peta("kesalahan", "Field nama wajib diisi"))
}
kembalikan ke_json(peta(
"pesan", "Produk berhasil ditambahkan",
"nama", nama
))
})
// DELETE - Hapus berdasarkan query param
rute(app, "DELETE", "/api/produk", fungsi(req) {
buat id = query(req, "id")
kembalikan ke_json(peta("pesan", "Produk " + id + " dihapus"))
})
tampilkan("API Server: http://localhost:8080")
jalankan_server(app)
Menjalankan Server
Terminal
// Mode interpreter (development)
nusa jalankan api-lengkap.ns
// Mode native binary (production) — LEBIH CEPAT!
nusa kompilasi api-lengkap.ns -o api_server
./api_server
Untuk produksi, selalu gunakan
nusa kompilasi agar server berjalan sebagai native binary yang jauh lebih cepat.