Extensiones

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 Google 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