nascom / teamleader-api-client
连接到 Teamleader API 的 PHP 客户端
v2.0.0-RC6
2021-12-16 10:39 UTC
Requires
- php: >=5.6
- league/oauth2-client: ^2.3
- nascom/oauth2-teamleader: ^0.1
- php-http/client-common: ^1.0|^2.0
- php-http/client-implementation: ^1.0|^2.0
- php-http/discovery: ^1.0
- php-http/httplug: ^1.1|^2.0
- php-http/message-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- guzzlehttp/psr7: ^1.0
- php-http/message: ^1.0
- php-http/mock-client: ^1.0
- phpspec/phpspec: ^3.2
- symfony/var-dumper: ^4.2
Suggests
- php-http/guzzle6-adapter: ^1.0
- symfony/serializer: Lets you use the Teamleader repository classes
This package is auto-updated.
Last update: 2024-09-16 17:02:24 UTC
README
更新的 API 客户端目前正在 v2 分支 上开发
TeamleaderApiClient
PHP 客户端,用于连接到 Teamleader API。
安装
此软件包可通过 composer 获取
$ composer require nascom/teamleader-api-client
基本用法
设置
首先,您需要提供一个可以执行 HTTP 请求的客户端。它必须实现 HttpClientInterface
。该软件包中已提供使用 Guzzle 的客户端。这需要安装 guzzlehttp/guzzle。
<?php use Nascom\TeamleaderApiClient\Http\HttpClient\GuzzleHttpClient; $guzzle = new \GuzzleHttp\Client(['base_uri' => 'https://www.teamleader.be/api/']); $httpClient = new GuzzleHttpClient($guzzle);
您可以使用此 HttpClient 实例化实际的 API 客户端。您还需要提供您的 Teamleader API 凭据。
<?php use Nascom\TeamleaderApiClient\Http\ApiClient\ApiClient; $teamleaderParameters = [ 'api_group' => '12345', 'api_secret' => 'XXXXXXXXXXXXXXX' ]; $client = new ApiClient( $httpClient, // A client implementing HttpClientInterface. $teamleaderParameters // An array containing the Teamleader credentials. );
发送请求
每个 API 端点都有一个相应的 Request 类。这些类必须传递给客户端的 handle()
方法,该方法将返回一个 Response 对象。所有可用的请求都可以在这里找到 这里。
例如,以下是如何获取项目详情的示例
<?php use Nascom\TeamleaderApiClient\Request\Project\RetrieveProjectRequest; $projectRequest = new RetrieveProjectRequest(23); $response = $client->handle($projectRequest); echo $response->getData(); // Returns the Teamleader JSON response as a string.
高级功能
提供额外选项
可以传递额外的选项到 ApiClient。这些选项将与一些默认选项合并,并在请求时传递给 HttpClient。
<?php $client = new ApiClient( $httpClient, $teamleaderParameters, ['connect_timeout' => 5.0] // This will override the default timeout. );
创建自定义 HttpClient
您可以创建自定义 HttpClient 来处理请求。它只需实现 HttpClientInterface
即可。例如,您可以实现一个使用 curl 的客户端。
<?php use Nascom\TeamleaderApiClient\Http\HttpClient\HttpClientInterface; class CurlHttpClient implements HttpClientInterface { public function request($method, $uri, array $options = []) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://www.teamleader.be/api/' . $uri, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $options['form_params'] )); $response = curl_exec($curl); curl_close($curl); return $response; } } $client = new ApiClient( new CurlHttpCLient(), $teamleaderParameters );