PHP Client for GraphQL
Via composer:
composer require softonic/graphql-client
To instantiate a client with an OAuth2 provider:
<?php$options = [
'clientId' => 'myclient',
'clientSecret' => 'mysecret',
];
$provider = newSoftonic\OAuth2\Client\Provider\Softonic($options);
$config = ['grant_type' => 'client_credentials', 'scope' => 'myscope'];
$cache = new \Symfony\Component\Cache\Adapter\FilesystemAdapter();
$client = \Softonic\GraphQL\ClientBuilder::buildWithOAuth2Provider(
'https://catalog.swarm.pub.softonic.one/graphql',
$provider,
$config,
$cache
);
// Query Example$query = <<<'QUERY'query GetFooBar($idFoo: String, $idBar: String) { foo(id: $idFoo) { id_foo bar (id: $idBar) { id_bar } }}
QUERY;
$variables = ['idFoo' => 'foo', 'idBar' => 'bar'];
$response = $client->query($query, $variables);
// Mutation Example$mutation = <<<'MUTATION'mutation ($foo: ObjectInput!){ CreateObjectMutation (object: $foo) { status }}
MUTATION;
$variables = [
'foo' => [
'id_foo' => 'foo', 'bar' => [
'id_bar' => 'bar'
]
]
];
$response = $client->query($mutation, $variables);To instantiate a client without OAuth2:
<?php$client = \Softonic\GraphQL\ClientBuilder::build('https://catalog.swarm.pub.softonic.one/graphql');
$query = <<<'QUERY'query GetFooBar($idFoo: String, $idBar: String) { foo(id: $idFoo) { id_foo bar (id: $idBar) { id_bar } }}
QUERY;
$variables = [
'idFoo' => 'foo',
'idBar' => 'bar',
];
$response = $client->query($query, $variables);softonic/graphql-client has a PHPUnit test suite and a coding style compliance test suite using PHP CS Fixer.
To run the tests, run the following command from the project folder.
$ docker-compose run testTo run interactively using PsySH:
$ docker-compose run psyshThe Apache 2.0 license. Please see LICENSE for more information.