Extensiones
Para facilitar la prueba de las funciones nuevas y permitir que los programadores agreguen información adicional a un feed GTFS Realtime, aprovecharemos la función de extensiones de los búferes de protocolo. Las extensiones nos permiten definir un espacio de nombres en un mensaje de búfer de protocolo, donde los programadores de terceros pueden definir campos adicionales sin la necesidad de modificar la protodefinición original.
Si un desarrollador tiene interés en extender la especificación GTFS Realtime, debe comunicarse con los miembros de la lista de distribución de GTFS Realtime, y nosotros le asignaremos el siguiente ID de extensión disponible. Este ID se selecciona progresivamente de una lista de números que comienza en 1000 y se va incrementando, la cual se encuentra documentada en la sección Registro de extensiones que se incluye a continuación.
Estos ID de extensión asignados corresponden a los ID de etiqueta disponibles en el espacio de nombres extension
para cada definición de mensaje de GTFS Realtime. Ahora que el desarrollador tiene un ID de extensión asignado, usará ese ID cuando extienda todos y cada uno de los mensajes de GTFS Realtime. Incluso si el desarrollador solo planea extender un único mensaje, el ID de extensión asignado se reservará para TODOS los mensajes.
En el caso de un desarrollador que extiende la especificación, en lugar de agregar un campo único, como string
o int32
con su ID de extensión, el modelo preferido consiste en definir un mensaje nuevo, como MyTripDescriptorExtension
, extender el mensaje subyacente de GTFS Realtime con tu mensaje nuevo y, luego, colocar todos tus campos nuevos ahí. Esto te brinda la posibilidad de administrar los campos de tu mensaje de extensión de la forma que quieras, sin la necesidad de reservar un ID de extensión nuevo de la lista principal.
message MyTripDescriptorExtension {
optional string some_string = 1;
optional bool some_bool = 2;
...
}
extend transit_realtime.TripDescriptor {
optional MyTripDescriptorExtension my_trip_descriptor = YOUR_EXTENSION_ID;
}
Registro de extensiones
ID de extensión | Programador | Contacto | Detalles |
---|---|---|---|
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 | Actualizaciones de transporte público en directo de Google Maps | |
1003 | OVapi | gtfs-rt en 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 | Grupo de discusión |
1008 | SEPTA: Autoridad de transporte del sudeste de Pensilvania | Gregory Apessos | https://github.com/septadev |
1009 | Swiftly | mike@goswift.ly | Grupo de discusión |
1010 | IBI Group | Ritesh Warade | Propuesta en GitHub para agregar marcas de tiempo nuevas en Alertas de servicio |