PTV 0.2.7

PTV 0.2.7

James Margenberg维护。



PTV 0.2.7

  • 作者
  • James Margenberg

PTV

Build Status

PTV Timetable API v3的API适配器,是用Swift编写iOS的。

安装

该库可以使用cocoapods安装。

只需在podfile中添加pod 'PTV', '~> 0.2'并运行pod install

适配器类

模型适配器

import PTV

let ptv = PTV.ModelledAdapter(devid: "12345678", key: "12345678901234567890")

提供特定API调用的函数,成功调用时使用预先定义的Codable结构体在completion闭包中调用,失败调用时使用failure闭包在CallFailReason枚举(例如.AccessDenied.NoNetworkConnection)和message字符串中调用

我只为完成我的项目需要的一部分PTV API调用实现了这个子集。如果您需要使用其他调用,您应该能够按照现有调用如何实现来为新调用实现新函数。如果您这样做,请随意创建一个PR,我将合并它。

已实现功能

路由
  • getRouteTypes(failure: Adapter FailureHandler) { routeTypes: [RouteType] in _ }
  • getRoutes(failure: Adapter FailureHandler) { routes: [Route] in _ }
  • getRoutes(forRouteTypeID: Int, failure: Adapter FailureHandler) { routes: [Route] in _ }
  • getRoutes(forRouteTypeIDs: [Int], failure: Adapter FailureHandler) { routes: [Route] in _ }
站点
  • getStops(nearLocation: CLLocationCoordinate2D, forRouteTypes: [Int], maxResults: Int, maxDistance: Int, failure: Adapter FailureHandler) { stops: [StopGeosearch] in _ }
  • getStops(onRoute: Int, forRouteType: Int, failure: Adapter FailureHandler) { stops: [StopOnRoute] in _ }
  • getStopDetails(forStop: Int, forRouteType: Int, failure: Adapter FailureHandler) {stop: StopDetails in _ }
出发和停车模式
  • getDepartures(forStop: Int, withRouteType: Int, failure: Adapter FailureHandler) { departures: [Departure] in _ }
  • getStoppingPattern(forRun: Int, withRouteType: Int, failure: Adapter FailureHandler) {stoppingPattern: StoppingPattern} in _

注意,Adapter.FailureHandler 是函数类型 (_ callFailReason: CallFailReason, _ message: String?) -> () 的别称

缓存适配器

import PTV

let ptv = PTV.CachingAdapter(devid: "1234567", key: "12345678901234567890")

PTV.ModelledAdapter 的子类,其中任何返回的 'static' 数据都缓存以便于后续轻松检索。

例如,可以使用 getRouteFromCache(forRouteId: 9); 从缓存中检索已遇到的路线,而无需进行实际的 API 请求。

当使用getDeparture(forStop, withRouteType, failure, completion)作为任何方向、出行、路线或站点时,这尤其有用,因为这些在返回的出发信息中引用的任何方向、出行、路线或站点都会被缓存起来以供稍后快速检索。

Plain 适配器

import PTV

let ptv = PTV.Adapter(devid: "1234567", key: "12345678901234567890")

允许您直接基于 API 名称、搜索字符串和参数调用 PTV API,这些参数在PTV API 文档中定义。

只有当您需要使用ModelledAdapterCachingAdapter未涵盖的 API 调用时,才应使用此适配器。

处理需要的登录到 PTV API 所需要的一种(有点不常见)的请求数字签名。

如果成功,则调用对响应进行解码到Codable类型的completion闭包,否则调用带有CallFailReasonfailure闭包,例如.AccessDenied.NoNetworkConnection