think.studio/ipro-software-api-php

iProSoftware API 客户端(php)

4.1.0 2024-02-09 11:34 UTC

This package is auto-updated.

Last update: 2024-09-09 12:40:51 UTC


README

Packagist License Packagist Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality

非官方的 IproSoftware API 实现。

安装

您可以通过 composer 安装此包

    composer require think.studio/ipro-software-api-php

简单示例

    $iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([
        'api_host' => 'my-iprosoftware-api-host',
        'client_id' => 'my-iprosoftware-client-id',
        'client_secret' => 'my-iprosoftware-client-secret',
    ]);
    
    $response = $iproSoftwareClient->getBookingRulesList();

    $responseBody = json_decode($response->getBody());

注意:所有预定义的 API 请求名称您可以在 这里 找到

配置客户端

Trello 客户端需要一些配置设置才能成功运行。

创建客户端时设置配置

$iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([
    'api_host' => 'my-iprosoftware-api-host',
    'client_id' => 'my-iprosoftware-client-id',
    'client_secret' => 'my-iprosoftware-client-secret',
    'cache_manager' => new MyDatabaseAccessTokenCacheManager(),
    'client_conf' => [
        'timeout' => 15,
        'http_errors' => false,
        'headers' => [
            'Accept' => 'application/json',
        ]
    ]
]);

初始化后设置访问令牌缓存管理器

    $iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient([
        'api_host' => 'my-iprosoftware-api-host',
        'client_id' => 'my-iprosoftware-client-id',
        'client_secret' => 'my-iprosoftware-client-secret'
    ]);
    
    $iproSoftwareClient->setAccessTokenCacheManager(new MyDatabaseAccessTokenCacheManager())

如果您想要完全控制请求,可以设置自己的 HTTP 客户端

    $iproSoftwareClient = new \IproSoftwareApi\IproSoftwareClient();
    
    $iproSoftwareClient->setHttpClient(new MyOwnHttpClient($credentials))

异常处理

如果您尝试使用错误的配置进行查询,您将获得一个异常 IproSoftwareApi\Exceptions\IproSoftwareApiException。如果服务器无法获取访问令牌,您将收到 IproSoftwareApi\Exceptions\IproSoftwareApiAccessTokenException

    try {
        $response = $iproSoftwareClient->getBookingRulesList();
    } catch (IproSoftwareApi\Exceptions\IproSoftwareApiAccessTokenException $e) {
        $code = $e->getCode(); // Http status code from response
        $reason = $e->getMessage(); // Http status reason phrase
        $httpResponse = $e->getResponse(); // Psr\Http\Message\ResponseInterface from http client
    }

测试

  composer test

致谢

  • Think Studio