卡珊纳/卡珊纳SDK-PHP

卡珊纳SDK for PHP

v1.2.9 2024-04-16 06:59 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License Coverage Status

安装

要通过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-adapterphp-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();