Format JSON Standar – Custom API (FSC)

Saat menggunakan Connector = Custom API, endpoint yang Anda buat harus mengembalikan data dalam format JSON dengan struktur yang dikenali FSC.

🔧 Struktur Dasar JSON

{
"flights": [
{
"time": "2025-08-25T08:45:00Z",
"flight": "GA123",
"airline": "Garuda Indonesia",
"route": {
"from": {
"code": "CGK",
"name": "Soekarno-Hatta",
"city": "Jakarta"
},
"to": {
"code": "DPS",
"name": "Ngurah Rai",
"city": "Denpasar"
}
},
"gate": "A12",
"terminal": "2D",
"status": "DELAYED"
},
{
"time": "2025-08-25T09:30:00Z",
"flight": "SQ951",
"airline": "Singapore Airlines",
"route": {
"from": {
"code": "CGK",
"name": "Soekarno-Hatta",
"city": "Jakarta"
},
"to": {
"code": "SIN",
"name": "Changi Airport",
"city": "Singapore"
}
},
"gate": "C3",
"terminal": "3",
"status": "ON TIME"
}
]
}

📋 Keterangan Field

  • flights → array berisi daftar penerbangan.
  • time → waktu keberangkatan/kedatangan (format ISO 8601, UTC disarankan).
  • flight → kode penerbangan (mis. GA123, SQ951).
  • airline → nama maskapai.
  • route → asal dan tujuan penerbangan.
    • from.code = kode IATA/ICAO asal
    • from.name = nama bandara asal
    • from.city = kota asal
    • to.code = kode IATA/ICAO tujuan
    • to.name = nama bandara tujuan
    • to.city = kota tujuan
  • gate → nomor gate (opsional).
  • terminal → terminal (opsional).
  • status → status penerbangan. Nilai yang dikenali plugin:
    • ON TIME
    • DELAYED
    • CANCELED
    • BOARDING
    • LANDED

⚡ Contoh Endpoint Custom API

Misalnya Anda membuat API sendiri:

https://mydomain.com/api/flights?airport=CGK&type=arrivals

Hasil response JSON:

{
"flights": [
{
"time": "2025-08-25T10:15:00Z",
"flight": "JT567",
"airline": "Lion Air",
"route": {
"from": { "code": "SUB", "name": "Juanda", "city": "Surabaya" },
"to": { "code": "CGK", "name": "Soekarno-Hatta", "city": "Jakarta" }
},
"gate": "B4",
"terminal": "1A",
"status": "LANDED"
}
]
}

✅ Best Practice

  1. Gunakan format ISO 8601 untuk waktu (YYYY-MM-DDTHH:mm:ssZ).
  2. Wajib menyertakan flight, airline, route.from, route.to, status.
  3. Field opsional: gate, terminal.
  4. Status harus sesuai daftar standar (ON TIME, DELAYED, dll).
  5. Jika tidak ada data, kembalikan flights: [] agar plugin menampilkan “No flights found”.