trexima / sri-client
Client for SRI API
2.0.0
2022-10-25 13:53 UTC
Requires
- php: ^7.4.0||^8.0.0
- ext-json: *
- cocur/slugify: ^4.0
- doctrine/dbal: ^3.1
- guzzlehttp/guzzle: ^7.4
- symfony/cache-contracts: ^1.1||^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-master
- symfony/cache: ^5.4
- symfony/dotenv: ^5.4
README
Installation
Installation with Composer:
composer require trexima/sri-client
Installation of MYSQL driver inside of Docker container
Installation inside of Docker container:
docker-php-ext-install pdo_mysql
docker-php-ext-enable pdo_mysql
/etc/init.d/apache2 reload
Basic Usage of v2 client
<?php use GuzzleHttp\Exception\GuzzleException; use Symfony\Component\Cache\Adapter\ArrayAdapter; use Trexima\SriClient\Exception\GraphQLException; use Trexima\SriClient\v2\Client; require __DIR__.'/vendor/autoload.php'; // Composer's autoloader // create client $cache = new ArrayAdapter(); $parameterExtractor = new \Trexima\SriClient\MethodParameterExtractor($cache); $sriClient = new Client('http://sri.localhost', '', $parameterExtractor, $cache); // make request try { $activity = $sriClient->getActivityDetail('1'); } catch (GuzzleException $e) { // TODO handle exception } var_dump($activity); // make GraphQL request try { $query = sprintf(' { activitiesTimeline (id: \"/api/activities_timeline/%s\") { id, name, content, dateFrom, dateTo } }', 1); $graphQLquery = '{"query": "query ' . str_replace(array("\n", "\r"), '', $query) . '"}'; $activity = $sriClient->getGraphQL($graphQLquery); } catch (GraphQLException $e) { $errors = $e->getGraphQLErrors(); $data = $e->getData(); $message = $e->getMessage(); // TODO handle GraphQL error } catch (GuzzleException $e) { $message = $e->getMessage(); $httpCode = $e->getCode(); if ($e->hasResponse()) { $response = $e->getResponse(); } // TODO handle Guzzle error } var_dump($activity);