Penyediaan API¶
Introduction API¶
Di dunia IT, dalam sebuah site sering terdapat aplikasi-aplikasi yg diciptakan oleh perusahaan-perusahaan berbeda, yang menggunakan bahasa programming dan memiliki alur kerja yg berbeda-beda. Oleh karena semua perbedaan ini, banyak aplikasi yang berada di suatu site tidak bekerja sama dalam memberikan layanan terpadu kepada para penggunanya. API (Application Programming Interface) adalah antarmuka yang disediakan oleh sebuah aplikasi agar aplikasi lain dapat dengan mudah mengakses informasi atau bahkan mengubah data, tanpa harus mengenal bahasa programming dan alur kerja dari aplikasi tersebut.
Server Inalix menyediakan API untuk setiap data simpanannya bagi pengguna mana saja yang memiliki sandi untuk mengakses web admin server tersebut.
REST API adalah API yg disediakan di server-server Inalix yg memiliki beberapa keunggulan:
API paling umum dipakai
Menggunakan protokol HTTP sehingga mudah dipakai
Dapat dibuka, ditelusuri dan diubah dalam web browser
Menyajikan data dalam format XML atau JSON
Data Yang Tersedia¶
API untuk semua data pada Inalix apps sudah tersedia, mulai dari master data, flight management, billing, pax & cargo, fids, aas, planning, report, dan lain-lain. Adapaun URL untuk akses API inalix Apps:
http://ip_or_domain/api/
Dalam bab ini akan fokus membahas tentang API untuk flight management karena API ini lebih sering digunakan untuk integrasi dengan sistem lain yang ada di bandara
API flight management¶
Untuk setiap penerbangan, Inalix Apps menyediakan data API dengan URL dan penjelasan detail sebagai berikut:
URL
http://ip_or_domain/api/flight/
a. Menampilkan 100 data penerbangan per page
b. Dapat di filter melalui parameter GET
d. Format data JSON
No. |
Field |
Keterangan |
Contoh |
|---|---|---|---|
1 |
id |
primary key penerbangan, biasanya berisikan seragkaian nomor yang dihasilkan otomatis oleh sistem |
|
2 |
ad |
rute penerbangan (diperlukan method POST)
|
A |
3 |
direction |
alias dari ad (field no.2) |
A |
4 |
opr |
operator menggunakan 3 letter code |
BTK |
5 |
airline |
alias dari opr (field no.4) |
BTK |
6 |
callsign |
Nomor penerbangan dengan kode ICAO (diperlukan method POST) |
SJY588 |
7 |
regno |
Nomor registrasi penerbangan. Jika nilainya “ZZZZZ” berarti data masih kosong (default) |
PKOSP |
8 |
time |
Jadwal Penerbangan sesuai schedule (wajib untuk metode POST) dengan waktu lokal |
2017-10-13T12:45:00+07:00 |
9 |
new_time |
Jadwal penerbangan baru apa bila penerbangan tidak sesuai schedule (waktu lokal)
|
2017-10-13T12:45:00+07:00 |
10 |
est |
Waktu Estimate, (waktu lokal)
|
2017-10-13T12:54:14.686927+07:00 |
11 |
airport |
Kode ICAO bandara
|
WIDD |
12 |
nbd |
waktu boarding (waktu lokal) |
2017-10-13T12:54:14.686927+07:00 |
13 |
act |
Waktu Actual
|
2017-10-13T12:54:14.686927+07:00 |
14 |
bay |
nomor tempat pesawat diparkir (nomor parking stand) |
A01 |
15 |
block |
Waktu blok terakhir (waktu lokal)
|
2017-10-13T12:54:14.686927+07:00 |
16 |
bridge |
Penggunaan avio bridge
|
|
17 |
status |
Status penerbangan
|
SCH |
18 |
scope |
cakupan penerbangan (Scope)
|
I |
19 |
datehour |
nilainya sama dengan field time (field no.8) tetapi menggunakan waktu UTC |
2014123116 |
20 |
via |
Kode ICAO bandara transit
|
WADD |
21 |
aircraft |
Informasi pesawat, menampilkan list 3 data:
|
[“B461”, 16.2, 15.9]
|
22 |
arr |
ID pasangan flight departure
|
4173241 |
23 |
dep |
ID pasangan flight arrival
|
4173394 |
24 |
desks |
Daftar meja yang digunakan untuk check in |
[“1”, “2”, “3”, “A1”, “A2”] |
25 |
gate |
label (nomor) gate yang digunakan untuk boarding |
B10 |
26 |
belt |
label (nomor) conveyor belt yang digunakan untuk bagasi |
B01 |
27 |
closed |
status penerbangan di FIDS
|
true |
28 |
delay_reason |
Kode untuk alasan penerbangan terlambat
|
“NIA”, “OPR”, “AP” , “CUA”, “TEK” |
29 |
scheduled |
Nilai Boolean ‘true’ atau ‘false’ terkait flight schedule atau unschedule
|
true |
30 |
opr_time |
Nilai dari field ini akan selalu berubah sesuai dengan kondisi terakhir pesawat
|
|
31 |
desk_open |
Waktu check in dimulai (waktu lokal) |
2017-10-13T12:54:14.686927+07:00 |
32 |
desk_close |
Waktu checkin close (waktu lokal) |
2017-10-13T13:58:19.869427+07:00 |
33 |
desks_custom |
Daftar id meja checkin custom (special desk) pada FIDS |
[“4”, “5”] |
34 |
ap |
kode local airport (ICAO) |
WARQ |
35 |
complete |
kelengkapan data waktu blok, parking stand dan connect (readonly)
|
true |
36 |
codeshare |
nomor penerbangan untuk penerbangan yang memiliki lebih dari satu callsign |
NIH221 |
37 |
noopr |
Jika pesawat tidak beroperasi akan memiliki nilai TRUE dan jika beroperasi akan memiliki nilai FALSE |
false |
38 |
terminal |
terminal yang digunakan seperti: 1 untuk terminal 1, 2 untuk terminal 2, I untuk terminal internasional, atau yang lain |
1 |
39 |
key |
Kode unik untuk setiap penerbangan (readonly),
|
WARQA2020091703BTK7368
|
40 |
runway |
nomor runway yang digunakan |
27 |
41 |
modified |
Waktu terakhir modifikasi data penerbangan (readonly) |
2016-01-30T00:07:00.418735Z |
42 |
airport_name |
lokasi bandara (kota) |
kupang |
43 |
closed_opr |
close operasional yang biasanya digunakan untuk unit AMC
|
false |
44 |
fstat |
Flight Status
|
NML |
45 |
bag_first |
Waktu pertama memasuki konveyor belt (waktu lokal) |
2017-10-13T12:54:14.686927+07:00 |
46 |
bag_last |
Waktu terakhir memasuki konveyor belt (waktu lokal) |
2017-10-13T13:24:14.667927+07:00 |
47 |
gate_open |
Waktu pintu keberangkatan (gate) dibuka (waktu lokal) |
2017-10-13T12:54:14.686927+07:00 |
48 |
gate_close |
Waktu pintu keberangkatan (gate) ditutup (waktu lokal) |
2017-10-13T12:54:14.686927+07:00 |
49 |
callsign_2 |
Nomor penerbangan dengan kode IATA |
GA-123 |
50 |
note |
catatan penerbangan |
|
51 |
ftype |
tipe penerbangan
|
N |
52 |
delay |
Keterlambatan dalam menit (readonly) |
8 |
53 |
delay_level |
level keterlambatan (readonly)
|
|
54 |
status_label |
status penerbangan (readonly)
|
No operate |
55 |
diverted |
Kode ICAO bandara asal flight divert |
WARR |
56 |
first_block |
Waktu pertama block (readonly) |
2017-10-13T12:54:14.686927+07:00 |
57 |
airports3 |
Kode IATA bandara (read_only)
|
SUB |
58 |
bridge_dock |
waktu aviobridge docking. |
2017-10-13T12:54:14.686927+07:00 |
59 |
circ |
jumlah penerbangan circle, biasanya untuk pesawat latih (TNI) |
5 |
60 |
bridge_undock |
waktu aviobridge undocking |
2017-10-13T12:54:14.686927+07:00 |
61 |
ok |
Status verifikasi data penerbangan
|
true |
62 |
via1 |
via1 |
|
63 |
via2 |
via2 |
|
64 |
via3 |
via3 |
|
65 |
key_v2 |
key_v2 |
|
66 |
desks_range |
||
67 |
old_bay |
history perubahan nomor parking stand |
A05 |
68 |
pk |
alias dari id |
|
69 |
arr_key |
arrival key, Kode unik untuk pasangan penerbangan departure
|
WADDA2014123120CES5029 |
70 |
taxi_time |
durasi taxi time (second) |
420 |
71 |
est_bridge_dock |
waktu estimasi docking |
2014-12-31T15:42:00Z |
72 |
est_bridge_undock |
waktu estimasi undocking |
2014-12-31T16:00:00Z |
73 |
est_desk_open |
waktu estimasi desk open |
2014-12-31T19:03:00Z |
74 |
est_desk_close |
waktu estimasi desk close |
2014-12-31T21:18:00Z |
75 |
est_bag_first |
waktu estimasi first baggage |
|
76 |
est_bag_last |
waktu estimasi last baggage |
|
77 |
est_gate_open |
waktu estimasi gate open |
2014-12-31T21:40:00Z |
78 |
est_gate_close |
waktu estimasi gate close |
2014-12-31T22:00:00Z |
79 |
est_block |
waktu estimasi block
|
2014-12-31T16:10:00Z |
80 |
est_info |
estimate yang digunakan oleh user info (waktu lokal)
|
2017-10-13T12:54:14.686927+07:00 |
81 |
est_taxi_time |
estimasi durasi taxi time (menit)
|
7 |
82 |
flag |
||
83 |
nearest_gate |
lokasi gate terdekat, relatif terhadap parking stand |
B09 |
84 |
nearest_bay |
lokasi bay terdekat, relatif terhadap gate |
A05 |
85 |
free_text_status |
||
86 |
gate_change_pc |
Gate Change Post Calculation (menit), berkaitan dengan KPI |
|
87 |
gate_change_rc |
Gate Change Real Calculation (menit), berkaitan dengan KPI |
|
88 |
gate_change_pcr |
Gate Post Change Revise, boolean (true and false) |
true |
89 |
gate_change_rcr |
Gate Relative Change Revise, boolean (true and false) |
true |
90 |
gate_change_reason |
gate change reason |
|
91 |
gate_change_remark |
gate change remark |
|
92 |
belt_change_pc |
Belt Change Post Calculation (menit), berkaitan dengan KPI |
|
93 |
belt_change_rc |
Belt Change Real Calculation (menit), berkaitan dengan KPI |
|
94 |
belt_change_pcr |
Belt Post Change Revise, boolean (true and false) |
|
95 |
belt_change_rcr |
Belt Relative Change Revise, boolean (true and false) |
|
96 |
belt_change_reason |
belt change reason |
|
97 |
belt_change_remark |
belt change remark |
|
98 |
bay_change_pc |
Bay Change Post Calculation (menit), berkaitan dengan KPI |
|
99 |
bay_change_rc |
Bay Change Real Calculation (menit), berkaitan dengan KPI |
|
100 |
bay_change_pcr |
Bay Post Change Revise, boolean (true and false) |
true |
101 |
bay_change_rcr |
Bay Relative Change Revise, boolean (true and false) |
true |
102 |
bay_change_reason |
bay change reason |
|
103 |
bay_change_remark |
bay change remark |
|
104 |
bridge_change_pc |
bridge Change Post Calculation (menit), berkaitan dengan KPI |
|
105 |
bridge_change_pcr |
bridge Post Change Revise, boolean (true and false) |
|
106 |
bridge_change_reason |
bridge change reason |
|
107 |
bridge_change_remark |
bridge change remark |
|
108 |
warnings |
remark warning, misal ketika petugas tidak mengisi data undocking |
Undocking time is empty |
109 |
number_of_desk |
||
110 |
reposition |
jumlah reposisi (berapa kali) |
1 |
111 |
sec |
watu second call |
2022-08-10T11:12:18.474921+08:00 |
112 |
lac |
waktu last call |
2022-08-10T11:12:18.474921+08:00 |
Filter Data API Flight¶
Filter API flight pada inalix apps meliputi:
No. |
Filter field |
Keterangan |
|---|---|---|
1 |
ap |
menampilkan data menurut field “ap” sesuai dengan Field |
2 |
callsign |
menampilkan data menurut field “callsign” sesuai dengan Field |
3 |
opr |
menampilkan data menurut field “opr” sesuai dengan Field |
4 |
ad |
menampilkan data menurut field “ad” sesuai dengan Field |
5 |
scope |
menampilkan data menurut field “scope” sesuai dengan Field |
6 |
new_time |
menampilkan data menurut field “new_time” sesuai dengan Field |
7 |
closed |
menampilkan data menurut field “closed” sesuai dengan Field |
8 |
datehour |
menampilkan data menurut field “datehour” sesuai dengan Field |
9 |
opr_closed |
menampilkan data menurut operasional pesawat dengan nilai false apabila pesawat masih beroperasi dan true apabila sudah selesai beroperasi (baik arrival dan departure) |
10 |
key |
menampilkan data menurut field “key” sesuai dengan Field |
11 |
bay |
menampilkan data menurut field “bay” sesuai dengan Field |
12 |
new_time_gte |
menampilkan data menurut field “new_time” pada Field yang lebih dari sama dengan nilai yang dimasukan
|
13 |
new_time_lte |
menampilkan data menurut field “new_time” pada Field yang sama dengan atau kurang dari nilai yang dimasukan
|
14 |
search |
menampilkan data sesuai field “callsign” sesuai Field dan input ini tidak case-sensitive |
15 |
closed_opr |
menampilkan data sesuai field “closed_opr” sesuai dengan Field
|
16 |
gate |
menampilkan data menurut field “gate” sesuai dengan Field |
17 |
belt |
menampilkan data menurut field “belt” sesuai dengan Field |
18 |
status |
menampilkan data menurut field “status” sesuai dengan Field |
19 |
status_in |
menampilkan data menurut field “status_in” sesuai dengan Field |
20 |
status_not_in |
menampilkan data menurut field “status_not_in” sesuai dengan Field |
21 |
terminal |
menampilkan data menurut field “terminal” sesuai dengan Field |
22 |
est |
menampilkan data menurut field “est” sesuai dengan Field |
23 |
ok |
menampilkan data menurut field “ok” sesuai dengan Field |
24 |
delay_level |
Menampilkan fligth berdasarkan delay level |
25 |
delay_level_in |
Menampilkan fligth berdasarkan delay level, bisa lebih dari satu, misal, “delay_level_in=A,B,C” |
26 |
block_is_null |
boolean yes or no |
27 |
dep_block_isnull |
boolean yes or no |
28 |
act_isnull |
boolean yes or no |
29 |
gate_post_revised |
menampilkan data menurut field “gate_post_revised” sesuai dengan Field |
30 |
gate_real_revised |
menampilkan data menurut field “gate_real_revised” sesuai dengan Field |
31 |
belt_post_revised |
menampilkan data menurut field “belt_post_revised” sesuai dengan Field |
32 |
belt_real_revised |
menampilkan data menurut field “belt_real_revised” sesuai dengan Field |
33 |
bay_post_revised |
menampilkan data menurut field “bay_post_revised” sesuai dengan Field |
34 |
bay_real_revised |
menampilkan data menurut field “bay_real_revised” sesuai dengan Field |
35 |
bridge_usage_post_revised |
menampilkan data menurut field “bridge_usage_post_revised” sesuai dengan Field |
36 |
credit |
menampilkan data menurut field “credit/cash” sesuai dengan Field |
37 |
not_operating |
menampilkan data menurut field “not_operating” sesuai dengan Field |
38 |
modified_gte |
|
39 |
modified_lte |
|
40 |
ftype |
|
41 |
admin_filter_by_status |
|
42 |
filter_bay |
|
43 |
order_by |
|
44 |
ndh_filter |
|
45 |
daily_rotation |
|
46 |
bay_is_null |
|
47 |
schedule_lt |
|
48 |
is_null
|
menampilkan data “null” menurut resouce: bay, gate, belt |
49 |
block_gte |
menampilkan data menurut field “block” pada Field yang lebih dari sama dengan nilai yang dimasukan
|
50 |
block_lte |
menampilkan data menurut field “block” pada Field yang sama dengan atau kurang dari nilai yang dimasukan
|
51 |
reschedule_year |
menampilkan data menurut field “reschedule_year” sesuai dengan Field |
52 |
reschedule_month |
menampilkan data menurut field “reschedule_month” sesuai dengan Field |
53 |
reschedule_day |
menampilkan data menurut field “reschedule_day” sesuai dengan Field |
Akses API flight melalui URL pada browser¶
URL-URL berikut dapat dimasukkan ke browser untuk mengakses data penerbangan:
Akses API Flight¶
http://<ip_server>/api/flight
akan menampilkan data seperti berikut
Akses API Flight
Akses API Flight dengan Filter¶
API Flight dengan filter digunakan agar daftar flight hanya memunculkan penerbangan tertentu
Lebih dari satu filter dapat dihubungkan dgn tanda ‘&’
API Flight dengan single filter
http://<ip_server>/api/flight[?<FILTERS>]
contoh: http://<ip_server>/api/flight?ad=A
akan menampilkan data seperti berikut
Contoh Akses API Flight dengan Satu Filter
API Flight dengan multifilter
http://<ip_server>/api/flight[?<FILTER1>&<FILTER2>]
contoh: http://<ip_server>/api/flight?ad=A&opr_closed=true
akan menampilkan data seperti berikut
Contoh Akses API Flight dengan Multiple Filter
Daftar API
Selain data penerbangan, data-data server lainnya seperti daftar maskapai, bandara, registrasi pesawat, status penerbangan, dan sebagainya, dapat ditelusuri menggunakan URL ini
http://<ip_server>/api
akan menampilkan semua data server, berupa url-url API seperti berikut
Daftar API server Inalix