TeamleaderApiClient
Added LICENSE
업데이트된 API 클라이언트는 현재 v2 브랜치에서 개발 중입니다.
Teamleader API에 연결하기 위한 PHP 클라이언트입니다.
패키지는 작곡가를 통해 사용할 수 있습니다.
$ 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 엔드포인트에는 해당 요청 클래스가 있습니다. 이러한 클래스는 Response 객체를 반환하는 클라이언트의 handle()
메서드에 전달되어야 합니다. 사용 가능한 모든 요청은 여기에서 확인할 수 있습니다.
예를 들어 프로젝트 세부정보를 가져오는 방법은 다음과 같습니다.
<?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를 만들 수 있습니다. 해야 할 일은 HttpClientInterface
를 구현하는 것뿐입니다. 예를 들어, 컬을 사용하여 클라이언트를 구현할 수 있습니다.
<?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
);