확장 프로그램

확장 프로그램

새로운 기능을 손쉽게 테스트하고 개발자가 GTFS Realtime 피드에 정보를 추가할 수 있도록 하기 위해 프로토콜 버퍼의 확장 프로그램 기능을 이용할 계획입니다. 확장 프로그램을 사용하면 프로토콜 버퍼 메시지에서 네임스페이스를 정의할 수 있습니다. 여기서 제3자 개발자는 원본 프로토 정의를 수정할 필요 없이 추가 입력란을 정의할 수 있습니다.

개발자가 GTFS Realtime 사양을 확장하는 데 관심이 있는 경우 GTFS Realtime 메일링 리스트에 연락해야 합니다. 그러면 아래 확장 프로그램 레지스트리 섹션에 문서화된 1000부터 시작하는 숫자 목록에서 단계적으로 선택하여 이용 가능한 다음 확장 프로그램 ID가 할당될 것입니다.

이러한 할당된 확장 프로그램 ID는 각 GTFS Realtime 메시지 정의에 대한 '확장' 네임스페이스에서 사용 가능한 태그 ID에 해당합니다. 이제 개발자는 모든 GTFS Realtime 메시지를 확장할 때 할당된 확장 프로그램 ID를 사용합니다. 개발자가 단일 메시지만 확장하려는 경우에도 모든 메시지에 대해 할당된 확장 프로그램 ID가 예약됩니다.

사양을 확장하는 개발자는 확장 프로그램 ID가 'string' 또는 'int32'와 같은 단일 입력란을 추가하는 대신 선호하는 모델을 통해 'MyTripDescriptorExtension'과 같은 새로운 메시지를 정의하고 기본 GTFS Realtime 메시지를 새로운 메시지로 확장한 다음 모든 새 입력란을 추가하게 됩니다. 이는 마스터 목록에서 새로운 확장 프로그램 ID를 예약하지 않고도 원하는 확장 프로그램 메시지 내에서 입력란을 관리할 수 있는 속성을 가지고 있습니다.

message MyTripDescriptorExtension {
  optional string some_string = 1;
  optional bool some_bool = 2;
  ...
}
extend transit_realtime.TripDescriptor {
  optional MyTripDescriptorExtension my_trip_descriptor = YOUR_EXTENSION_ID;
}

확장 레지스트리

확장 프로그램 ID 개발자 연락처 세부정보
1000 OneBusAway onebusaway-developers https://github.com/OneBusAway/onebusaway/wiki/GTFS-Realtime-Resources
1001 뉴욕시 MTA mtadeveloperresources http://mta.info/developers/
1002 Google transit-realtime-partner-support@google.com Google 지도 실시간 대중교통 업데이트
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 그룹 토론
1008 SEPTA: 펜실베이니아 남동부 교통국 Gregory Apessos https://github.com/septadev
1009 Swiftly mike@goswift.ly 그룹 토론