Response Helper
Fungsi-fungsi response helper NusaFramework untuk menghasilkan format JSON yang konsisten di seluruh API.
Referensi Fungsi
| Fungsi | Deskripsi |
|---|---|
resp_ok(data, pesan) | Response sukses dengan data dan pesan |
resp_error(pesan) | Response error dengan pesan |
resp_validasi(pesan, errors) | Response error validasi dengan daftar errors |
resp_paginasi(data, total, halaman) | Response sukses dengan metadata paginasi |
validasi(data, aturan) | Validasi input dan kembalikan array error |
resp_ok — Response Sukses
Penggunaan resp_ok
// Dengan data dan pesan
kembalikan resp_ok(data, "Berhasil")
// Dengan data saja (pesan default "Berhasil")
kembalikan resp_ok(data)
// Tanpa data (operasi berhasil)
kembalikan resp_ok(nihil, "Pengguna berhasil dihapus")
Response JSON
{
"sukses": true,
"pesan": "Berhasil",
"data": { ... }
}resp_error — Response Error
Penggunaan resp_error
kembalikan resp_error("Token tidak valid atau kedaluwarsa")
kembalikan resp_error("Pengguna tidak ditemukan")
kembalikan resp_error("Email sudah digunakan")
Response JSON
{
"sukses": false,
"pesan": "Token tidak valid atau kedaluwarsa",
"data": null
}resp_validasi — Error Validasi
Penggunaan resp_validasi
buat body = body_json(req)
// Validasi field
buat errors = validasi(body, {
"nama" : "wajib|min:2|maks:100",
"email" : "wajib|email",
"sandi" : "wajib|min:8"
})
// Jika ada error, kembalikan respons validasi
jika panjang(errors) > 0 {
kembalikan resp_validasi("Data tidak valid", errors)
}
Response JSON
{
"sukses": false,
"pesan": "Data tidak valid",
"errors": [
"Field 'nama' wajib diisi",
"Field 'email' harus berupa email valid"
]
}Aturan Validasi yang Tersedia
| Aturan | Deskripsi | Contoh |
|---|---|---|
wajib | Field tidak boleh kosong | "wajib" |
min:N | Minimal N karakter | "min:8" |
maks:N | Maksimal N karakter | "maks:100" |
email | Harus format email valid | "email" |
Kombinasikan dengan |: "wajib|email|maks:100"
resp_paginasi — Response Berpaginasi
Penggunaan resp_paginasi
buat data = Model_semua("Produk", "id DESC")
buat total = Model_hitung("Produk")
buat halaman = ke_bilangan(param_query(req, "halaman"))
buat per_halaman = 20
jika halaman == 0 { halaman = 1 }
kembalikan resp_paginasi(data, total, halaman, per_halaman)
Response JSON
{
"sukses": true,
"data": [...],
"meta": {
"total": 85,
"halaman": 1,
"per_halaman": 20,
"total_halaman": 5
}
}