Extensões

Extensões

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

Quando um desenvolvedor tem interesse em estender a especificação GTFS Realtime, ele deve entrar em contato com a lista de e-mails dela. Nós atribuiremos a ele o próximo ID de extensão disponível, selecionado de forma incremental em uma lista de números a partir de 1.000, 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 extension para cada definição de mensagem da GTFS Realtime. Agora que o desenvolvedor recebeu um ID de extensão, ele usará esse código ao estender quaisquer mensagens relacionadas. Mesmo que ele pretenda apenas estender uma única mensagem, o ID de extensão atribuído será reservado para TODAS as mensagens.

Quando um desenvolvedor estende a especificação, em vez de adicionar um único campo como string ou int32 com os respectivos IDs, o modelo preferido é definir uma nova mensagem, como MyTripDescriptorExtension, que estenda a mensagem da GTFS Realtime subjacente e incluir todos os seus novos campos. Isso permite gerenciar os campos na mensagem da sua extensão da forma que quiser, sem precisar reservar um novo ID de extensão na lista primária.

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