saas-cb / spr-php-client
PHP 8.4 client for SAAS CB Gateway SPR API
v0.0.2
2026-06-22 16:26 UTC
Requires
- php: ^8.4
- symfony/http-client: ^7.0
- symfony/http-client-contracts: ^3.4
Requires (Dev)
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-06-22 16:27:03 UTC
README
PHP 8.4 SDK для взаимодействия с SPR-роутами gateway сервиса SAAS CB.
Требования
- PHP
^8.4 - Composer
Установка
composer require saas-cb/spr-php-client
Быстрый старт
use SaasCb\SprClient\Client; use SaasCb\SprClient\Configuration; $config = new Configuration('https://gateway.example.com', 'your-api-key'); $client = new Client($config);
Проверка доступности (/ping)
ping() не требует API-ключа:
$config = new Configuration('https://gateway.example.com'); $client = new Client($config); $ping = $client->ping(); if ($ping->isSpr()) { echo "Gateway и SPR доступны\n"; }
Деревья скоринга
// Список деревьев $response = $client->listTrees(); foreach ($response->getData()->getItems() as $tree) { echo $tree->getName() . "\n"; } // Список деревьев с фильтрацией, сортировкой и пагинацией $filters = [ 'name' => 'test', 'page' => 1, 'limit' => 20, 'sort' => 'name', 'order' => 'asc', ]; $response = $client->withQueryParameters(array_filter($filters))->listTrees(); $data = $response->getData(); echo "Страница {$data->getPage()} из " . ceil($data->getTotal() / $data->getLimit()) . "\n"; // Получить дерево $tree = $client->getTree('tree-uuid'); // Создать дерево $tree = $client->createTree(new CreateTreeRequest( name: 'My tree', config: ['nodes' => [], 'edges' => []], )); // Обновить дерево $tree = $client->updateTree('tree-uuid', new UpdateTreeRequest(name: 'Updated')); // Удалить дерево $client->deleteTree('tree-uuid');
Запуск скоринга
use SaasCb\SprClient\Request\EvaluateRequest; $request = (new EvaluateRequest(customerId: 123, applicationId: 'app-456')) ->addContextField('birth_date', '1990-01-01') ->addContextField('passport', '1234567890'); $reference = $client->evaluateTree('tree-uuid', $request); echo $reference->getRunUuid();
Статус и результат прогона
$status = $client->getRunStatus('run-uuid'); $result = $client->getRunResult('run-uuid');
Список доступных скорингов
$response = $client->listScorings(); foreach ($response->getItems() as $scoring) { echo $scoring->getCode() . ': ' . $scoring->getName() . "\n"; } // С фильтром по категории $response = $client->listScorings('basic');
Входные поля дерева
$inputs = $client->getTreeInputs('tree-uuid'); foreach ($inputs as $name => $scoringInput) { echo $name . ': ' . $scoringInput->getCode() . "\n"; }
Обработка ошибок
SDK бросает типизированные исключения:
use SaasCb\SprClient\Exception\AuthenticationException; use SaasCb\SprClient\Exception\NotFoundException; use SaasCb\SprClient\Exception\ValidationException; use SaasCb\SprClient\Exception\ServerException; try { $client->getTree('unknown-uuid'); } catch (NotFoundException $e) { echo "Не найдено (HTTP {$e->getHttpStatusCode()}): {$e->getMessage()}\n"; } catch (AuthenticationException $e) { echo "Ошибка авторизации\n"; } catch (ValidationException $e) { echo "Ошибка валидации: {$e->getMessage()}\n"; } catch (ServerException $e) { echo "Ошибка сервера: {$e->getMessage()}\n"; }
Запуск тестов
composer install vendor/bin/phpunit
Примеры
Смотри папку examples/:
ping.php— проверка доступности gateway/SPR.list_trees.php— список деревьев.evaluate.php— запуск скоринга и polling результата.
Лицензия
Proprietary.