NexaUI Network adalah modul yang menyediakan cara sederhana untuk membuat permintaan API ke endpoint v1 dan v2. Mendukung berbagai metode autentikasi dan tipe konten yang berbeda.
Pertama, buat instance baru dari NexaUI:
const nexaUi = new NexaUI();
try {
const result = await nexaUi
.Network({
type: "v2",
credensial: "KUNCI-API-ANDA",
secret: "KUNCI-RAHASIA-ANDA",
}).post("users", {
name: "Budi",
email: "budi@contoh.com",
});
console.log(result);
} catch (error) {
console.error("Detail error:", error);
}
try {
const result = await nexaUi
.Network({
type: "v1",
credensial: "KUNCI-API-ANDA",
}).post("data", {
name: "Budi",
email: "budi@contoh.com",
});
console.log(result);
} catch (error) {
console.error("Detail error:", error);
}
Metode | Deskripsi | Contoh |
---|---|---|
get(endpoint) | Membuat permintaan GET | await network.get("users") |
post(endpoint, data) | Membuat permintaan POST dengan data | await network.post("users", { name: "Budi" }) |
put(endpoint, data) | Membuat permintaan PUT dengan data | await network.put("users/1", { name: "Budi" }) |
delete(endpoint) | Membuat permintaan DELETE | await network.delete("users/1") |
Tipe Konten | Deskripsi | Kasus Penggunaan |
---|---|---|
application/json | Tipe konten default. Mengirim data sebagai JSON | Permintaan API umum |
application/x-www-form-urlencoded | Mengirim data sebagai form-urlencoded | Pengiriman form tradisional |
multipart/form-data | Untuk mengirim file dan data form | Upload file |
text/plain | Mengirim data sebagai teks biasa | Data teks sederhana |
try {
const result = await nexaUi
.Network({
type: "v2",
credensial: "KUNCI-API-ANDA",
secret: "KUNCI-RAHASIA-ANDA",
contentType: "application/json" // Ini default, bisa diabaikan
}).post("users", {
name: "Budi",
email: "budi@contoh.com"
});
console.log(result);
} catch (error) {
console.error("Error:", error);
}
try {
const result = await nexaUi
.Network({
type: "v2",
credensial: "KUNCI-API-ANDA",
secret: "KUNCI-RAHASIA-ANDA",
contentType: "application/x-www-form-urlencoded"
}).post("form-submit", {
username: "budi_123",
password: "kata_sandi_aman"
});
console.log(result);
} catch (error) {
console.error("Error:", error);
}
try {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('deskripsi', 'Foto profil');
const result = await nexaUi
.Network({
type: "v2",
credensial: "KUNCI-API-ANDA",
secret: "KUNCI-RAHASIA-ANDA",
contentType: "multipart/form-data"
}).post("upload", formData);
console.log(result);
} catch (error) {
console.error("Error:", error);
}
try {
const result = await nexaUi
.Network({
type: "v2",
credensial: "KUNCI-API-ANDA",
secret: "KUNCI-RAHASIA-ANDA",
contentType: "text/plain"
}).post("logs", "Error sistem terjadi pada 2024-01-20 15:30:00");
console.log(result);
} catch (error) {
console.error("Error:", error);
}
Anda dapat mengubah tipe konten untuk permintaan yang berbeda menggunakan instance Network yang sama:
const api = nexaUi.Network({
type: "v2",
credensial: "KUNCI-API-ANDA",
secret: "KUNCI-RAHASIA-ANDA"
});
// Permintaan JSON
await api.post("users", {
name: "Budi",
email: "budi@contoh.com"
});
// Ubah ke form-urlencoded
api.setContentType("application/x-www-form-urlencoded");
await api.post("login", {
username: "budi_123",
password: "kata_sandi_aman"
});
// Ubah ke multipart/form-data untuk upload file
api.setContentType("multipart/form-data");
await api.post("upload", formData);
application/json
jika tidak
ditentukan
multipart/form-data
, gunakan objek FormData untuk
upload file
setContentType()
Semua permintaan jaringan harus dibungkus dalam blok try-catch untuk menangani kemungkinan error:
try {
const result = await nexaUi.Network(config).get("endpoint");
// Handle sukses
} catch (error) {
console.error("Detail error:", error);
// Handle error
}
WebSocket menyediakan koneksi dua arah yang persisten antara client dan server. Ideal untuk aplikasi real-time yang membutuhkan pembaruan data instan.
try {
const wsConnection = await nexaUi.Network({
type: "ws",
action: "data",
credensial: "YOUR-WS-CREDENTIAL"
});
wsConnection.then((response) => {
console.log("Data baru diterima:", response);
}).catch((error) => {
console.error("WebSocket error:", error);
});
} catch (error) {
console.error("Connection error:", error);
}
REST API mendukung dua versi: v1 (tanpa secret) dan v2 (dengan secret). Pilih versi sesuai dengan kebutuhan keamanan aplikasi Anda.
const v2Api = nexaUi.Network({
type: "v2",
credensial: "YOUR-V2-CREDENTIAL",
secret: "YOUR-SECRET-KEY"
});
const v1Api = nexaUi.Network({
type: "v1",
credensial: "YOUR-V1-CREDENTIAL"
});
SSE memungkinkan server untuk push data ke browser client. Cocok untuk skenario di mana server perlu mengirim pembaruan ke client tanpa memerlukan request dari client.
const sseConnection = nexaUi.Network({
type: "sse",
endpoint: "/events",
credensial: "YOUR-SSE-CREDENTIAL"
});