Ekstensi

Ekstensi

Untuk memfasilitasi pengujian fitur baru dan memungkinkan developer menambahkan informasi lainnya ke feed GTFS Realtime, kita akan memanfaatkan fitur Ekstensi dari Protocol Buffer. Dengan Ekstensi, kita dapat menentukan namespace dalam pesan Protocol Buffer sehingga developer pihak ketiga dapat menentukan kolom tambahan tanpa perlu memodifikasi definisi proto aslinya.

Jika developer ingin memperluas Spesifikasi GTFS Realtime, mereka harus menghubungi milis GTFS Realtime dan kami akan memberikan ID ekstensi berikutnya yang tersedia, yang diambil secara bertahap dari daftar angka mulai dari 1000 ke atas serta didokumentasikan di bagian Registry Ekstensi pada tabel di bawah ini.

ID ekstensi yang diberikan ini sesuai dengan ID tag yang tersedia di namespace extension untuk setiap definisi pesan GTFS Realtime. Setelah developer memiliki ID ekstensi, mereka harus menggunakan ID tersebut saat memperluas setiap dan semua pesan GTFS Realtime. Bahkan jika developer hanya berencana memperluas satu pesan, ID ekstensi yang telah diberikan tersebut akan disediakan untuk SEMUA pesan.

Bagi developer yang ingin memperluas spesifikasi, alih-alih menambahkan satu kolom baru seperti string atau int32 beserta ID ekstensinya, sebaiknya gunakan model berikut karena lebih diutamakan: tentukan pesan baru seperti MyTripDescriptorExtension, kemudian perluas pesan GTFS Realtime pokok dengan pesan baru, lalu tempatkan semua kolom baru di dalam pesan. Model ini memiliki properti yang bagus, sehingga Anda dapat mengelola kolom dalam pesan ekstensi kapan pun Anda mau, tanpa harus memesan ID ekstensi baru dari daftar utama.

message MyTripDescriptorExtension {
  optional string some_string = 1;
  optional bool some_bool = 2;
  ...
}
extend transit_realtime.TripDescriptor {
  optional MyTripDescriptorExtension my_trip_descriptor = YOUR_EXTENSION_ID;
}

Registry Ekstensi

ID Ekstensi Developer Kontak Detail
1000 OneBusAway onebusaway-developers https://github.com/OneBusAway/onebusaway/wiki/GTFS-Realtime-Resources
1001 New York City MTA mtadeveloperresources http://mta.info/developers/
1002 Google transit-realtime-partner-support@google.com Live Transit Updates dari Google Maps
1003 OVapi gtfs-rt at ovapi.nl http://gtfs.ovapi.nl
1004 Metra William Ashbaugh w.l.ashbaugh@gmail.com
1005 Metro-North Railroad John Larsen
1006 realCity David Varga http://realcity.io
1007 NSW TrainLink Gregory Nicholls Diskusi grup
1008 SEPTA - Southeastern Pennsylvania Transportation Authority Gregory Apessos https://github.com/septadev
1009 Swiftly mike@goswift.ly Diskusi Grup