0length/graphql-client

The good and minimal Graphql Http client for Laravel.

v2.0.1.8-stable 2024-02-22 07:46 UTC

This package is auto-updated.

Last update: 2024-11-22 09:30:17 UTC


README

Graphql-Client is a graphql client package for Laravel that you can use to consume Graphql API.

How to use

This package is installed via Composer. To install, simply add it to your composer.json file:

{
    "require": {
        "0length/graphql-client": "^2.0"
    }
}

and run composer to update the dependencies composer update.

Then open your Laravel config file config/app.php and in the $providers array add the service provider for this package.

\Zerolength\Graphql\GraphqlServiceProvider::class

Generate the configuration file running in the console:

php artisan vendor:publish --tag=config

Finally add your graphql server endpoint url and headers option as following example below:

GRAPHQL_WORKSPACE="http://127.0.0.1:4001/graphql"
GRAPHQL_HEADERS="Authorization: App keyxxx,Header2: value"

Example Query Class Creation

<?php

namespace App\Graphql\Queries;

use Zerolength\Graphql\Entities\GraphqlQueries;
use App\Models\User;

class CSQueries extends GraphqlQueries
{


    /**
     * Generate privately subscription session key for User.
     */
    public function createSession(User $user)
    {
        $this->setPayload(
            __FUNCTION__,
            [
                'data' => $user
            ],
            '
                query ' . __FUNCTION__ . 'Operation($data: SessionDataInput!){
                    ' . __FUNCTION__ . '(data: $data)
                }
            '
        );
        return $this->execute();
    }
}

Example Query Class Call/Usage

$sessionCreationResponse = (new CSQueries())->createSession($user);