Extensões

Extensões

Para facilitar os testes de novos recursos e permitir que os desenvolvedores incluam informações adicionais em um feed da GTFS Realtime, usaremos o recurso de extensões dos buffers de protocolo. As extensões nos permitem definir um namespace em uma mensagem do buffer de protocolo, em que os desenvolvedores terceirizados podem especificar campos adicionais sem a necessidade de modificar a definição original do .proto.

Quando um desenvolvedor quiser estender a especificação GTFS Realtime, ele deverá entrar em contato com a lista de e-mails da GTFS Realtime. Assim, ele receberá o próximo código de extensão disponível, selecionado de forma incremental em uma lista de números a partir de 1.000 e documentado na seção "Registro de extensões" abaixo.

Esses IDs de extensão atribuídos correspondem aos IDs de tags disponíveis no namespace da extensão para cada definição de mensagem da GTFS Realtime. Agora que o desenvolvedor recebeu um ID de extensão, ele usará esse ID ao estender quaisquer mensagens da GTFS Realtime. Mesmo que o desenvolvedor pretenda apenas estender uma única mensagem, o ID de extensão atribuído será reservado para TODAS as mensagens.

Quando um desenvolvedor estende uma especificação, em vez de adicionar um único campo, como "string" ou "int32" com os respectivos IDs, o modelo preferido é que seja definida uma nova mensagem, como "MyTripDescriptorExtension" que estenda a mensagem da GTFS Realtime subjacente e inclua todos os seus novos campos. Isso traz a possibilidade de gerenciar campos na mensagem da sua extensão da forma como você desejar, sem precisar reservar um novo ID de extensão na lista mestre.

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 extensões

ID da extensão Desenvolvedor Contato Detalhes
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 Atualizações dinâmicas de transporte público do 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 Discussão em grupo
1008 SEPTA – Southeastern Pennsylvania Transportation Authority Gregory Apessos https://github.com/septadev
1009 Swiftly mike@goswift.ly Discussão em grupo