vikingsmaster / tampere-journeys-api-sdk
Tampere Journeys API 的 PHP SDK
0.1.2
2019-11-05 17:05 UTC
Requires
- php: ^7.2
- ext-json: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-21 23:30:04 UTC
README
这是 Tampere Journeys API 的非官方 SDK 发布。
安装
使用 composer 安装: composer require vikingmaster/tampere-journeys-api-sdk
使用
创建 API 客户端实例。可用的配置参数
baseUri
请求的基础 URItimeout
(可选) Http 请求超时(秒)userAgent
(可选) User-Agent 头
$api = new \Vikingmaster\TampereJourneysApiSdk\TampereJourneysApiClient([ 'baseUri' => 'http://data.itsfactory.fi/journeys/api' ]);
获取线路
//Fetch lines $request = $api->makeGetLinesRequest() ->setIndent(true) ->setDescription('Description') ; $response = $request->send(); $lines = $response->getLines();
获取旅程模式
$request = $api->makeGetJourneyPatternsRequest() ->setFirstStopPointId(1) ->setLastStopPointId(2) ->setLineId(17) ->setName("Nokian asema C - Keho") ; $response = $request->send(); $patterns = $response->getJourneyPatterns();
异常处理
当有请求错误时,将抛出 TampereJourneyApiException
use \Vikingmaster\TampereJourneysApiSdk\Exceptions\TampereJourneyApiException; try { $response = $request->send(); } catch (TampereJourneyApiException $e) { //These methods are available for problem tracing $apiError = $e->getApiError(); $request = $e->getRequest(); $response = $e->getResponse(); $apiClient = $e->getApiClient(); } catch (\Exception $e) { //Any other errors such as network or configuration error }
分页
一些响应可能很长,因此可能需要多次请求才能获取所有内容
/** @var array|\Vikingmaster\TampereJourneysApiSdk\Dto\Line[] $entries */ $entries = []; $fetch = true; $startIndex = 0; while ($fetch) { try { $response = $request->setStartIndex($startIndex)->send(); $entries = array_merge($entries, $response->getLines()); } catch (\Exception $e) { //Handle exception / resend the request break; } $fetch = $response->getPaging()->hasMoreData(); $startIndex = $response->getPaging()->getPageSize(); }