National Rail的一个简单的python包装器查询ldbs soap webservice
nre-darwin-p的Python项目详细描述
简介
nre darwin py为通过ldb soap web服务访问国家铁路查询达尔文服务提供了一个抽象层。这项服务为所有英国火车站提供实时离站信息。
本模块的目标如下:
- 允许开发人员避免SOAP的复杂性和选择Python SOAP客户端 所涉及的决策
- 提供更多pythonic接口到站板和服务详细信息
- 通过pydoc或python shell中的help命令提供有用的文档
- 方便您轻松创建登机牌网站和网络服务
基本用法
启动会话:
>>> from nredarwin.webservice import DarwinLdbSession >>> darwin_sesh = DarwinLdbSession(wsdl="https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx", api_key="YOUR_KEY")
取回曼彻斯特皮卡迪利车站的发车牌:
>>> board = darwin_sesh.get_station_board('MAN') >>> board.location_name 'Manchester Piccadilly' >> board.train_services[0].destination_text 'Rose Hill Marple'
检索有关特定服务的详细信息:
>>> service_id = board.train_services[0].service_id >>> service = darwin_sesh.get_service_details(service_id) >>> [cp.location_name for cp in service.subsequent_calling_points] [Gorton, Fairfield, Guide Bridge, Hyde Central, Woodley, Romiley, Rose Hill Marple]
提供的example.py脚本显示了一个简单的离港板实现,供您参考
实用性
- 环境变量Darwin Web Service_wsdl和Darwin Web Service_api_key可用于设置wsdl URL和API key,因此在启动Darwinldbsession时不必指定它们。
- ldb webservice的wsdl url可能会不时更改,而且在过去是这样。你的申请应该考虑到这一点。
- 任何调用get_station_board或get_service_details都将导致对ldb webservice的查询,从而导致对外部服务的http请求。您的应用程序需要自己处理缓存和故障模式。
- 创建darwinldbsession时会涉及开销,因为必须检索和解析wsdl。
学分
乔治·戈德伯格的额外贡献。Pete Barking对肥皂水代理问题的建议。
待办事项
- 将出发和到达时间作为时区感知的日期时间对象提供
- 更详细的异常处理
- 更多示例