120 lines
2.4 KiB
Markdown
120 lines
2.4 KiB
Markdown
|
|
# Verifikasi Format Response - Pastikan Sama dengan API Lama
|
||
|
|
|
||
|
|
## ⚠️ PENTING: Format Response Harus Sama Persis
|
||
|
|
|
||
|
|
Aplikasi mobile mungkin bergantung pada format response yang spesifik. Perbedaan format bisa membuat aplikasi tidak berjalan dengan baik.
|
||
|
|
|
||
|
|
## Endpoint dengan Response Khusus
|
||
|
|
|
||
|
|
### 1. batal_pembayaran
|
||
|
|
**API Lama:**
|
||
|
|
```php
|
||
|
|
$data = array(
|
||
|
|
'status' => 404,
|
||
|
|
'pesan' => "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi",
|
||
|
|
);
|
||
|
|
...
|
||
|
|
if ($cek_pembayaran) {
|
||
|
|
$data['status'] = 200; // Hanya update status, pesan TIDAK diubah
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response API Lama saat sukses:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**API Baru (Sekarang):**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
✅ **SAMA**
|
||
|
|
|
||
|
|
### 2. confirm_pembayaran
|
||
|
|
**API Lama:**
|
||
|
|
```php
|
||
|
|
$data = array(
|
||
|
|
'status' => 404,
|
||
|
|
'pesan' => "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi",
|
||
|
|
);
|
||
|
|
...
|
||
|
|
if ($cek_pembayaran) {
|
||
|
|
$data['status'] = 200; // Hanya update status, pesan TIDAK diubah
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response API Lama saat sukses:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**API Baru (Sekarang):**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Gagal membatalkan pembayaran, silahkan coba beberapa saat lagi"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
✅ **SAMA**
|
||
|
|
|
||
|
|
## Format Response Standar
|
||
|
|
|
||
|
|
### Success dengan Data
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Message",
|
||
|
|
"data": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Success dengan Field di Root (login)
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Selamat Datang ...",
|
||
|
|
"user": {...},
|
||
|
|
"data_sl": [...]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Success Tanpa Pesan (beberapa endpoint)
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 200,
|
||
|
|
"pesan": "Default message (tidak diubah)"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Error
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"status": 404,
|
||
|
|
"pesan": "Error message"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Catatan Penting
|
||
|
|
|
||
|
|
1. **Aplikasi mobile mungkin hanya cek `status == 200`** untuk menentukan sukses
|
||
|
|
2. **Tapi untuk amannya, format response harus sama persis** dengan API lama
|
||
|
|
3. **Field `pesan` tetap ada** meskipun status 200 (sesuai API lama)
|
||
|
|
4. **Beberapa endpoint mengembalikan field langsung di root** (bukan nested di `data`)
|
||
|
|
|
||
|
|
## Rekomendasi Testing
|
||
|
|
|
||
|
|
Sebelum deploy ke production, lakukan testing dengan:
|
||
|
|
1. Test semua endpoint dengan aplikasi mobile
|
||
|
|
2. Bandingkan response JSON dari API lama vs API baru
|
||
|
|
3. Pastikan aplikasi mobile bisa parse response dengan benar
|
||
|
|
4. Test edge cases (error handling, empty data, dll)
|