Extensiones

Extensiones

Para facilitar la prueba de las funciones nuevas y permitir que los desarrolladores 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 desarrolladores externos 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 le asignaremos el siguiente id de extensión disponible. Este id se toma progresivamente de una lista de números que comienza en 1,000 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 "extensión" para cada definición de mensaje de GTFS Realtime. Ahora que el programador 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 programador solo planea extender un único mensaje, el id de extensión asignado se reservará para TODOS los mensajes.

Para un programador que extiende la especificación, en lugar de agregar un campo único, como una "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 tiene la ventaja de que puedes administrar los campos de tu mensaje de extensión de la manera que quieras, sin la necesidad de reservar un id de extensión nuevo de la lista maestra.

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 Sureste de Pensilvania Gregory Apessos https://github.com/septadev
1009 Swiftly mike@goswift.ly Grupo de discusión