Extensions
Pour faciliter le test de nouvelles fonctionnalités et permettre aux développeurs d'ajouter des informations supplémentaires à un flux GTFS en temps réel, nous exploiterons la fonctionnalité d'extensions des tampons de protocole. Les extensions nous permettent de définir un espace de noms dans un message de tampon de protocole où les développeurs tiers peuvent définir des champs supplémentaires sans avoir besoin de modifier la définition proto d'origine.
Lorsqu'un développeur souhaite une extension de la spécification GTFS en temps réel, il doit contacter la liste de diffusion GTFS en temps réel et nous lui attribuerons le prochain identifiant d'extension disponible. Cet identifiant est sélectionné de manière incrémentale à partir d'une liste de nombres commençant par 1000 et consignée dans la rubrique du registre des extensions ci-dessous.
Ces identifiants d'extensions attribués correspondent aux identifiants de tags disponibles dans l'espace de noms extension
pour chaque définition de message GTFS en temps réel. À partir du moment où un ID d'extension est attribué au développeur, celui-ci utilisera cet ID lors de l'extension de tous les messages GTFS-realtime. Même si le développeur ne prévoit d'étendre qu'un seul message, l'ID d'extension attribué sera réservé pour TOUS les messages.
Au lieu d'ajouter un seul champ comme string
ou int32
avec son ID d'extension, il est préférable pour le développeur de définir un nouveau message tel que MyTripDescriptorExtension
, d'étendre le message GTFS en temps réel sous-jacent avec le nouveau, puis d'y placer tous les nouveaux champs. Pouvoir gérer les champs dans votre message d'extension comme vous le souhaitez, sans avoir besoin de réserver un nouvel ID d'extension de la liste principale, est une propriété intéressante.
message MyTripDescriptorExtension {
optional string some_string = 1;
optional bool some_bool = 2;
...
}
extend transit_realtime.TripDescriptor {
optional MyTripDescriptorExtension my_trip_descriptor = YOUR_EXTENSION_ID;
}
Registre des extensions
ID d'extension | Développeur | Contact | Détails |
---|---|---|---|
1000 | OneBusAway | onebusaway-developers | https://github.com/OneBusAway/onebusaway/wiki/GTFS-Realtime-Resources |
1001 | New York City MTA | mtadeveloperresources | http://mta.info/developers/ |
1002 | transit-realtime-partner-support@google.com | Mises à jour en temps réel des transports en commun de Google Maps | |
1003 | OVapi | gtfs-rt sur 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 | Discussion de groupe |
1008 | SEPTA - Southeastern Pennsylvania Transportation Authority | Gregory Apessos | https://github.com/septadev |
1009 | Swiftly | mike@goswift.ly | Discussion de groupe |
1010 | IBI Group | Ritesh Warade | Proposition GitHub concernant les nouveaux codes temporels dans les alertes de service |