卡珊纳 / 卡珊纳SDK-PHP
卡珊纳SDK for PHP
v1.2.9
2024-04-16 06:59 UTC
Requires
- php: ^7.3 || ^8.0
- laravie/codex: ^5.0
- laravie/codex-security: ^1.1.2
- php-http/multipart-stream-builder: ^1.2
Requires (Dev)
- mockery/mockery: ^1.5
- php-http/discovery: ^1.14.1
- phpunit/phpunit: ^7.5 || ^8.4 || ^9.0
- symfony/http-client: ^5.4
README
安装
要通过composer安装,只需在您的composer.json
文件中添加以下内容
{ "require": { "katsana/katsana-sdk-php": "^1.2", "php-http/guzzle6-adapter": "^2.0" } }
快速安装
上述安装也可以通过以下命令简化
composer require "php-http/guzzle6-adapter" "katsana/katsana-sdk-php=^1.2"
HTTP适配器
您可能想使用任何其他实现了php-http/client-implementation
的适配器,而不是使用php-http/guzzle6-adapter
。有关PHP-HTTP的适配器信息,请参阅客户端与适配器。
用法
创建客户端
您可以通过以下代码创建一个客户端(使用php-http/guzzle6-adapter
和php-http/discovery
自动选择通过composer安装的可用适配器)
<?php use Katsana\Sdk\Client; $katsana = Client::make('client-id', 'client-secret');
在大多数情况下,您将使用带有个人访问令牌的客户端。您可以使用以下代码启动客户端
<?php use Katsana\Sdk\Client; $katsana = Client::personal('personal-access-token');
更改时区
默认情况下,所有请求都将返回UTC日期和时间数据,但您可以通过设置客户端(全局)来请求以不同时区响应
$katsana->onTimeZone('Asia/Kuala_Lumpur');
或在每个资源上设置
$vehicles = $katsana->uses('Vehicles'); $vehicles->onTimeZone('Asia/Kuala_Lumpur');
处理响应
使用API的每个请求都会返回一个Katsana\Sdk\Response
实例,它可以回退到\Psr\Http\Message\ResponseInterface
,这允许开发人员进一步检查响应。
例如
$response = $katsana->uses('Welcome')->hello(); var_dump($response->toArray());
{ "platform": "v4.5.13", "api": [ "v1" ] }
获取响应
您可以使用以下方式获取原始响应
$response->getBody();
然而,我们还创建了一个方法来解析返回的JSON字符串到数组。
$response->toArray();
检查响应HTTP状态
您可以通过以下方式获取响应状态码
$response->getStatusCode(); $response->isSuccessful(); $response->isUnauthorized();
检查响应头
您也可以使用以下代码检查响应头
$response->getHeaders(); // get all headers as array. $response->hasHeader('Content-Type'); // check if `Content-Type` header exist. $response->getHeader('Content-Type'); // get `Content-Type` header.
使用API
请求API有两种方式
使用API解析器
此方法允许您作为开发人员自动选择当前选定的API版本,而无需在KATSANA发布新API版本时修改代码。
$vehicles = $katsana->uses('Vehicles'); $response = $vehicles->all();
这将解析
Katsana\Sdk\One\Vehicles
类的实例(如v1
将解析到One
命名空间)。
显式API解析器
此方法允许您对要使用的版本有更多控制。
$vehicles = $katsana->via(new Katsana\Sdk\One\Vehicles()); $response = $vehicles->all();