Wrapper over euautomation/graphql-client library for laravel/lumen.
You can install the package via composer:
composer require alexaandrov/laravel-graphql-client
Set endpoint url in your .env
GRAPHQL_ENDPOINT_URL=https://your-endpoint.url
php artisan vendor:publish --provider="Alexaandrov\GraphQL\GraphQLClientServiceProvider"
Copy and setting up config:
cp vendor/alexaandrov/laravel-graphql-client/config/config.php config/graphql-client.php
Add to bootstrap/app.php
$app->configure('graphql-client');
$app->register(Alexaandrov\GraphQL\GraphQLClientServiceProvider::class);
<?php
$guery = <<<QUERY
query {
users {
id
email
}
}
QUERY;
$mutation = <<<MUTATION
mutation {
login(data: {
username: "user@mail.com"
password: "qwerty"
}) {
access_token
refresh_token
expires_in
token_type
}
}
MUTATION;
$queryResponse = Alexaandrov\GraphQL\Facades\Client::fetch($query);
foreach ($queryResponse->users as $user) {
// Do something with the data
$user->id;
$user->email;
}
$mutationResponse = Alexaandrov\GraphQL\Facades\Client::fetch($mutation);
// Do something with the data
$login = $mutationResponse->login;
$login->access_token;
$login->...;