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
Penjelasan Field API Flight

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: Arrival,

  • D: Departure,

  • O: Overfly

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)

  • jika nilainya sama dengan “time” berarti tidak ada perubahan schedule

2017-10-13T12:45:00+07:00

10

est

Waktu Estimate, (waktu lokal)

  • merupakan Estimate In Block Time (EIBT) jika ad = arrival

  • merupakan Estimate Off Block Time (EOBT) jika ad = departure

2017-10-13T12:54:14.686927+07:00

11

airport

Kode ICAO bandara

  • merupakan bandara tujuan jika ad= departure

  • merupakan bandara asal jika ad = arrival

WIDD

12

nbd

waktu boarding (waktu lokal)

2017-10-13T12:54:14.686927+07:00

13

act

Waktu Actual

  • merupakan Actual Landing Time (ALDT) jika ad = arrival

  • merupakan Actual Take Off Time (ATOT) jika ad = departure

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)

  • merupakan waktu blok on terakhir jika ad = arrival

  • merupakan waktu blok off terakhir jika ad = departure

2017-10-13T12:54:14.686927+07:00

16

bridge

Penggunaan avio bridge

  • 0 :tidak menggunakan avio

  • 1 :mnggunakan avio

  • -1:tidak diperbarui (nilai default), jika tidak diperbarui maka dianggap tidak menggunakan avio

17

status

Status penerbangan

  • berisi kode yang terdiri dari 3 huruf yang ditulis dengan standar inalix

  • kepanjangan dari kode tersebut dapat dilihat di modul admin menu flight statuses

  • kode ini juga berhubungan dengan status yang ada pada FIDS

SCH

18

scope

cakupan penerbangan (Scope)

  • I : Untuk penerbangan internasonal

  • D : Untuk penerbangan domestik

I

19

datehour

nilainya sama dengan field time (field no.8) tetapi menggunakan waktu UTC

2014123116

20

via

Kode ICAO bandara transit

  • Jika ada pemisah dengan koma “,” berarti transit lebih dari 1 bandara

WADD

21

aircraft

Informasi pesawat, menampilkan list 3 data:

  • list 1 : jenis pesawat

  • list 2 : lebar sayap

  • list 3 : panjang pesawat

[“B461”, 16.2, 15.9]

  • artinya pesawat B461; lebar sayap 16,2 meter; panjang pesawat 15,9 meter

22

arr

ID pasangan flight departure

  • jika flight arrival isinya “null”

  • jika flight departure, maka isinya ID flight arrival

4173241

23

dep

ID pasangan flight arrival

  • jika flight arrival, maka isinya ID flight departure

  • jika flight departure isinya “null”

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

  • bernilai true atau false

  • bernilai true berarti status penerbangan telah ditutup

  • bernilai false berarti status penerbangan masih berlangsung

true

28

delay_reason

Kode untuk alasan penerbangan terlambat

  • Kepanjangan dari kode tersebut dapat dilihat di modul admin, menu flight statuses

“NIA”, “OPR”, “AP” , “CUA”, “TEK”

29

scheduled

Nilai Boolean ‘true’ atau ‘false’ terkait flight schedule atau unschedule

  • jika scheduled nilainya “true”

  • jika unscheduled nilainya “false”

true

30

opr_time

Nilai dari field ini akan selalu berubah sesuai dengan kondisi terakhir pesawat

  • misal: apabila penerbangan telah menerima est maka field ini akan berisi nilai est atau selanjutnya

  • ketika penerbangan menerima waktu blok maka nilai field ini digantikan dengan nilai blok, dan seterusnya

  • berlaku baik penerbangan keberangkatan maupun kedatangan.

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)

  • bernilai “true” atau “false”

  • bernilai true jika dan hanya jika data waktu blok dan parking stand terisi, serta connected flight (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),

  • rangkaian key berisi informasi “<ap + ad + datehour + callsign>”

WARQA2020091703BTK7368

  • WARQ = Local Airport

  • A = Arrival

  • 20200917 = 17 September 2020

  • 03 = Jam (UTC)

  • BTK7368 = callsign

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

  • jika nilainya true berarti penerbangan telah di tutup

  • jika false berarti penerbangan masih berlangsung

false

44

fstat

Flight Status

  • NML: Normal

  • NOP: No Operate

  • CNL: Canceled

  • RTA: Return to apron

  • RTB: Return to base

  • DVT: Diverted

  • REP: Reposisi

  • CRG: Cargo

  • LCL: Local flight

  • MIL: Military

  • VIP: VIP

  • TRN: Training

  • GOV: Goverment

  • TST: Test Flight

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

  • S : Schedule

  • N : Non Schedule

  • M : Military

  • G : General Aviation

  • X : Special Ops

  • E : Extra Flight

N

52

delay

Keterlambatan dalam menit (readonly)

8

53

delay_level

level keterlambatan (readonly)

  • A : jika keterlambatan <= 30 menit

  • B : jika keterlambatan <= 60 menit

  • C : jika keterlambatan <= 120 menit

  • D : jika keterlambatan <= 180 menit

  • E : jika keterlambatan <= 240 menit

  • F : jika keterlambatan tak terhinga

54

status_label

status penerbangan (readonly)

  • contoh: Check in Open, Landed, Departed, No Operate

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)

  • merupakan bandara tujuan untuk flight departure (read_only)

  • merupakan bandara asal untuk arrival (read_only)

  • jika penerbangan transit maka kode dapat dipisahkan dengan “,” koma : “AKL, SUB” (tujuan 1= AKL)

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

  • bernilai true jika telah terkonfirmasi

  • bernilai false jika belum terkonfirmasi

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

  • akan terisi jika ad = departure, dan flight sudah connect

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

  • merupakan waktu estimasi block on untuk flight arrival

  • merupakan waktu estimasi block off untuk flight departure

2014-12-31T16:10:00Z

80

est_info

estimate yang digunakan oleh user info (waktu lokal)

  • merupakan Estimate Time Departure (ETD) untuk penerbangan departure (waktu lokal)

  • merupakan Estimate Time Arrival (ETA) untuk penerbangan arrival (waktu lokal)

2017-10-13T12:54:14.686927+07:00

81

est_taxi_time

estimasi durasi taxi time (menit)

  • default = 7 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:

Filter Field API Flight

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

  • dengan menggunakan ISO standar 8601, maka filter “new_time_gte=2016-01-01T01:00:00+07:00” akan memfilter penerbangan mulai 1 Desember 2016 00:00 sampai saat ini

13

new_time_lte

menampilkan data menurut field “new_time” pada Field yang sama dengan atau kurang dari nilai yang dimasukan

  • dengan menggunakan ISO standar 8601, maka filter “new_time_lte=2015-01-01T01:00:00+07:00” akan memfilter penerbangan sebelum 1 Desember 2016 00:00 sampai tanggal 1 Desember 2016

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

  • flight arrival sudah selesai block on

  • flight departure sudah selesai take off

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

  • isnull = bay : maka akan menampilkan semua data penerbangan dengan bay bernilai null (kosong)

  • isnull = !bay : maka akan menampilkan semua data penerbangan dengan bay tidak bernilai null (kosong)

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

  • dengan menggunakan ISO standar 8601, maka filter “block_gte=2016-01-01T01:00:00+07:00” akan memfilter penerbangan dengan waktu block terakhir mulai 1 Desember 2016 00:00 sampai saat ini

50

block_lte

menampilkan data menurut field “block” pada Field yang sama dengan atau kurang dari nilai yang dimasukan

  • dengan menggunakan ISO standar 8601, maka filter “_lte=2015-01-01T01:00:00+07:00” akan memfilter penerbangan dengan waktu blok terakhir sebelum 1 Desember 2016 00:00 sampai tanggal 1 Desember 2016

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

../_images/api_flight1.png ../_images/api_flight2.png ../_images/api_flight3.png

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 ‘&’

  1. API Flight dengan single filter

http://<ip_server>/api/flight[?<FILTERS>]
contoh: http://<ip_server>/api/flight?ad=A

akan menampilkan data seperti berikut

../_images/api_flight_single_filter.png

Contoh Akses API Flight dengan Satu Filter

  1. 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

../_images/api_flight_multi_filter.png

Contoh Akses API Flight dengan Multiple Filter

  1. 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

../_images/url_api_list1.png ../_images/url_api_list2.png

Daftar API server Inalix