Mekanisme Standard Response Wrapper
Kirem menstandarisasi seluruh respons (baik sukses maupun gagal) yang dikembalikan oleh server. Format respons standar enterprise ini dirancang agar mudah dibaca, konsisten di seluruh modul API, dan ramah terhadap pustaka parsing JSON (JSON parsing libraries) yang Anda gunakan di sisi klien.
🟢 1. Format Respons Sukses (Success Response)
Setiap request API yang berhasil diproses akan mengembalikan HTTP Status Code 2xx (biasanya 200 OK atau 201 Created) dan memiliki struktur JSON body sebagai berikut:
{
"status": 200,
"message": "Pesan deskripsi keberhasilan operasi",
"data": {
"key_1": "value_1",
"key_2": "value_2"
}
}
Properti Utama:
status(Integer): Salinan kode status HTTP (misal:200,201) untuk mempermudah pengecekan langsung di level aplikasi klien.message(String): Kalimat penjelasan ringkas mengenai aksi yang berhasil diselesaikan.data(Object/Array): Payload utama hasil eksekusi API. Jika respons tidak memiliki data tambahan, properti ini akan bernilainullatau objek kosong.
🔴 2. Format Respons Gagal (Error Response)
Ketika terjadi kesalahan pemrosesan, baik karena kesalahan parameter masukan klien (HTTP 4xx) maupun kendala server internal (HTTP 5xx), Kirem akan mengembalikan format respons sebagai berikut:
{
"status": 400,
"message": "Pesan deskriptif mengenai jenis error utama",
"errors": {
"field_name": "Detail penjelasan spesifik mengenai error pada field ini"
}
}
Properti Utama:
status(Integer): Kode status HTTP kegagalan (misal:400,401,403,404,429,500).message(String): Deskripsi global mengenai kegagalan permintaan HTTP.errors(Object/Array): Detail rincian kegagalan. Struktur di dalam objek ini bervariasi sesuai jenis kesalahan (misalnya pemetaan error validasi form, atau error dari Meta API).
🌐 3. Penanganan Khusus Error Meta Cloud API
Kirem membungkus respons kesalahan yang diterima dari server Meta WhatsApp Cloud API ke dalam objek errors secara rapi. Hal ini memudahkan Anda mendiagnosis masalah OAuth, token kedaluwarsa, atau pemblokiran pesan tanpa kehilangan detail asli dari Meta.
Contoh Error 400 (Akibat Templat Pesan Belum Disetujui di Meta):
{
"status": 400,
"message": "(#132000) Template status is not APPROVED.",
"errors": {
"message": "(#132000) Template status is not APPROVED.",
"type": "OAuthException",
"code": 132000,
"error_subcode": 2490001
}
}
Penjelasan Fields di dalam errors (Meta Wrapper):
message: Pesan error mentah dari Meta API.type: Jenis kelas error (misalnyaOAuthExceptionuntuk masalah kredensial/token).code: Kode error numerik dari WhatsApp/Meta (dapat dicocokkan dengan kamus error).error_subcode: Sub-kode numerik spesifik untuk melacak alasan mendalam kegagalan dari Meta.