ขณะนี้ไคลเอ็นต์ API ที่อัปเดตอยู่ระหว่างการพัฒนาที่สาขา v2
ไคลเอนต์ PHP เพื่อเชื่อมต่อกับ Teamleader API
แพ็คเกจนี้มีจำหน่ายผ่านผู้แต่ง:
$ 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 ทุกจุดมีคลาสคำขอที่สอดคล้องกัน คลาสเหล่านี้จะต้องถูกส่งผ่านไปยังเมธอด 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 แบบกำหนดเองเพื่อจัดการคำขอได้ สิ่งที่ต้องทำคือใช้ 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
);