clarus-it/http-client

用于访问Clarus IT应用程序API的HTTP客户端示例。

v0.6.0 2024-03-06 05:07 UTC

This package is auto-updated.

Last update: 2024-09-20 09:31:47 UTC


README

PHP语言的HTTP客户端库,用于访问Clarus IT应用程序的API。该库作为参考实现和示例,供需要为其他编程语言创建实现的人员使用。

安装

要安装此库,可以使用composer

composer require clarus-it/http-client

客户端库

用法

以下为ClarusHttpClient的示例用法:

// baseUri adalah base dari endpoint API, termasuk akhiran /api/
$baseUri = 'https://example.com/api/';

// apiKey adalah api key yang digenerate oleh aplikasi
$apiKey = '4e85a111bf36d87fea86f6452f5084a1bb7820b9605a18b217e3950eb5ea12c1';

// instantiasi objek ClarusHttpClient dengan parameter apiKey dan baseUri
$client = new ClarusHttpClient($apiKey, $baseUri);

// melakukan request GET ke https://example.com/api/ping
// client akan secara otomatis melakukan login apabila belum login, atau jika
// tokennya sudah kedaluarsa
$response = $client->request('GET', 'ping');

// mendapatkan hasilnya sebagai array
$result = $response->toArray();

ClarusHttpClient实现了Symfony的HttpClientInterface,因此可以以与Symfony HttpClient相同的方式使用。

算法

该HTTP客户端的算法操作如下。

Diagram proses

备注:检查token是否已过期的部分实际上可以不实现。结果是,库只能在向服务器发送请求后才知道token已过期。

在另一种编程语言中创建实现

在另一种编程语言中实现HTTP客户端通常不会很困难。例如,可以查看文件ClarusHttpClient.php并将其适应到其他编程语言。

用于解析JWT的库

分页

存在包含大量数据的端点。在这种情况下,通常将使用分页系统。一页将提供一些数据以及有关下一页的信息。使用这些信息,我们可以获取下一页的数据,直到没有更多数据为止。

下一页可以通过包含rel=nextLink头部知道。该库提供了PaginationIterator,客户端可以使用它来迭代使用分页系统的端点。

用法

以下为PaginationIterator的示例用法:

$client = // client yang sudah diinisialisasi, lihat contoh di atas
$endpoint = '/api/foo/01902fd6-e555-47eb-4761-fc2e9e48b2b5';

$iterator = new PaginationIterator($client, $endpoint);

foreach ($iterator as $item) {
    // $item adalah data yang diterima dari endpoint berbentuk array
}

算法

分页迭代器的算法如下。

Diagram proses

在另一种编程语言中创建实现

在另一种编程语言中实现时,需要解析链接头部的库。以下是一些可用于流行编程语言的库:

许可证

MIT