PHPackages                             ufvjm/graphql-client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ufvjm/graphql-client

ActiveLibrary[API Development](/categories/api)

ufvjm/graphql-client
====================

Cliente GraphQL para realizar requisições para a API GraphQL da UFVJM.

0.0.22(10mo ago)01.1kMITPHPPHP ^7.1CI failing

Since Jun 14Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/evertonpaiva/graphql-php-client)[ Packagist](https://packagist.org/packages/ufvjm/graphql-client)[ RSS](/packages/ufvjm-graphql-client/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (5)Versions (24)Used By (0)

[![Pipeline](https://camo.githubusercontent.com/1100425792fa4d7396131ded0bb9023fd7da9b9240d5eb013225ac9088a5c6c0/68747470733a2f2f6769742e6464732e7566766a6d2e6564752e62722f7566766a6d2f6772617068716c2d7068702d636c69656e742f6261646765732f746573742f706970656c696e652e737667)](//git.dds.ufvjm.edu.br/ufvjm/graphql-php-client/pipelines)[![Coverage](https://camo.githubusercontent.com/1d0a06a45161f17725eb315bd29dce2dd7881ecec4d635c5ea72bc428062cf4c/68747470733a2f2f6769742e6464732e7566766a6d2e6564752e62722f7566766a6d2f6772617068716c2d7068702d636c69656e742f6261646765732f746573742f636f7665726167652e737667)](//git.dds.ufvjm.edu.br/ufvjm/graphql-php-client)[![Latest Stable Version](https://camo.githubusercontent.com/678d1fabd470500f267152bbb45d81e11589a5d54c6a115a4f1e84766b2a3701/68747470733a2f2f706f7365722e707567782e6f72672f7566766a6d2f6772617068716c2d636c69656e742f76)](//packagist.org/packages/ufvjm/graphql-client)[![Total Downloads](https://camo.githubusercontent.com/410660a0af8ce9e8c037757af8158d4928d5306bb2c68b3e81a1dbc1d1d58411/68747470733a2f2f706f7365722e707567782e6f72672f7566766a6d2f6772617068716c2d636c69656e742f646f776e6c6f616473)](//packagist.org/packages/ufvjm/graphql-client)[![Latest Unstable Version](https://camo.githubusercontent.com/a55284beb671e55d14d4e88b79cfb1570c7853afe415153708f5ecc5f781ffda/68747470733a2f2f706f7365722e707567782e6f72672f7566766a6d2f6772617068716c2d636c69656e742f762f756e737461626c65)](//packagist.org/packages/ufvjm/graphql-client)[![License](https://camo.githubusercontent.com/874713867e5094147700f6098272201ce8a8dd680884731f96020506f177696d/68747470733a2f2f706f7365722e707567782e6f72672f7566766a6d2f6772617068716c2d636c69656e742f6c6963656e7365)](//packagist.org/packages/ufvjm/graphql-client)

Client GraphQL - UFVJM
======================

[](#client-graphql---ufvjm)

Uma biblioteca PHP para realizar requisições ao servidor GraphQL da UFVJM.

Sumário
-------

[](#sumário)

- [Client GraphQL - UFVJM](#client-graphql---ufvjm)
    - [Sumário](#sum%C3%A1rio)
    - [Utilização da biblioteca](#utiliza%C3%A7%C3%A3o-da-biblioteca)
        - [Pré-requisitos](#pr%C3%A9-requisitos)
        - [Adicionar biblioteca como dependência](#adicionar-biblioteca-como-depend%C3%AAncia)
        - [Definir variáveis de ambiente](#definir-vari%C3%A1veis-de-ambiente)
            - [Client Id e Client Key da Aplicação](#client-id-e-client-key-da-aplica%C3%A7%C3%A3o)
            - [Nome do ambiente](#nome-do-ambiente)
        - [Autenticação na API](#autentica%C3%A7%C3%A3o-na-api)
        - [Integrando a autenticação](#integrando-a-autentica%C3%A7%C3%A3o)
        - [Exemplos de consultas](#exemplos-de-consultas)
            - [Busca por código](#busca-por-c%C3%B3digo)
            - [Busca de informações paginadas](#busca-de-informa%C3%A7%C3%B5es-paginadas)
            - [Carregando relacionamentos](#carregando-relacionamentos)
    - [Contribuindo para a biblioteca](#contribuindo-para-a-biblioteca)
        - [Repositório](#reposit%C3%B3rio)
        - [Ferramentas](#ferramentas)
            - [Testes](#testes)
    - [Documentação](#documenta%C3%A7%C3%A3o)
    - [Equipe Responsável](#equipe-respons%C3%A1vel)
    - [Parceiros](#parceiros)

Utilização da biblioteca
------------------------

[](#utilização-da-biblioteca)

### Pré-requisitos

[](#pré-requisitos)

- PHP 7.1 ou superior
- [Composer](https://getcomposer.org/) instalado e configurado
- Aplicação cadastrada no [Portal do Desenvolvedor](https://portal-dev-teste.dds.ufvjm.edu.br/) da UFVJM

### Adicionar biblioteca como dependência

[](#adicionar-biblioteca-como-dependência)

Na raíz do seu projeto, execute o **composer**

- Via composer diretamente:

```
composer require ufvjm/graphql-client
```

- Ou via container docker:

```
docker run --rm --interactive --tty \
    --volume $PWD:/app \
    composer require ufvjm/graphql-client
```

### Definir variáveis de ambiente

[](#definir-variáveis-de-ambiente)

Informar corretamente os valores abaixo para as variáveis de ambiente:

#### Client Id e Client Key da Aplicação

[](#client-id-e-client-key-da-aplicação)

Lançar os valores corretos para os arquivos da integração com os microsserviços no arquivo **.env**.

Substituir os valores de **GRAPHQL\_APP\_ID** e **GRAPHQL\_APP\_KEY** para os valores cadastrados na stack de Microsserviços DTI/DDS:

```
GRAPHQL_APP_ID=
GRAPHQL_APP_KEY=
```

#### Nome do ambiente

[](#nome-do-ambiente)

Define se o seu sistema apontará para o ambiente de `testes` ou de `produção` (sistema oficial da UFVJM).

- Ambiente de Testes:

```
GRAPHQL_ENVNAME=teste

```

- Ambiente de Produção:

```
AINDA NÃO DISPONIBILIZADO

```

Após alterações no arquivo **.env**, o container web deve ser reiniciado para recarregar as alterações:

### Autenticação na API

[](#autenticação-na-api)

A autenticação é controlado por 2 tokens:

- **Token de Aplicativo**: aplicativo cadastrado e autorizado no Portal da API.
- **Token de Usuário**: usuário logado em sua Conta Institucional.

[![Query para gerar os tokens](docs/img/arquitetura-gerar-tokens.png)](docs/img/arquitetura-gerar-tokens.png)

A Autenticação do aplicativo é realizada fornecendo o appId e appKey fornecidos quando você realiza o cadastro do seu aplicativo no Portal da API. A autenticação do usuário é relizada fornecendo o usuário e senha da Conta Institucional da UFVJM.

Quando a query de Autenticação é executada, serão retornados 2 tokens:

- um token de autenticação válido por 24 horas para o aplicativo
- e um token de usuário válido por 3 horas.

Essa biblioteca armazena o token retornado na sessão PHP e, a cada nova requisição esses tokens serão utilizados. Antes de cada requisição a biblioteca testa a validade do token e, quando for o caso, realiza sua renovação através de uma requisição de renovação.

[![Requisições com autenticação](docs/img/arquitetura-consulta-com-autenticacao.png)](docs/img/arquitetura-consulta-com-autenticacao.png)

Os tokens são do tipo JWT (JSON Web Token), o artigo [O que é JSON Web Token?](https://www.devmedia.com.br/como-o-jwt-funciona/40265) explica o seu funcionamento.

### Integrando a autenticação

[](#integrando-a-autenticação)

No início do arquivo:

```
use GraphqlClient\GraphqlRequest\AuthGraphqlRequest;
```

Na função de autenticaçao:

```
//recupera os dados do formulario
$containstitucional = 'nome.sobrenome';
$senha = 'sua-senha';

try {
    $request = new stdClass();

    if(is_null($containstitucional) or is_null($senha)){
        throw new \Exception('Usuário ou senha não informados');
    }

    $request->containstitucional = $containstitucional;
    $request->password = $senha;

    // Carrega a classe de autenticação
    $authGraphqlRequest = new AuthGraphqlRequest();

    // Tenta realizar o login na Conta Institucional
    $authGraphqlRequest->loginContaInstitucional($request);

    // Recupera as informações do usuário logado
    // Dados pessoais e vinculos (aluno, docente, tae, coordenador de curso, etc) com a UFVJM
    $userInfo = $authGraphqlRequest->usuarioLogadoInfo();

    // Neste ponto, a autenticação funcionou, implementar o carregamento do usuário de banco de dados
    // proprietário da conta institucuinal ($containstitucional) utilizada na autenticação, a senha já foi validada.
    // Realize o login do usuário no seu framework para que a sessão armazene o usuário logado.
} catch (\Exception $e) {
    $errorMessage = $e->getMessage();
    // A mensagem de erro foi carregada, tratar para disponibilizar na interface para o usuário do sistema
}
```

### Exemplos de consultas

[](#exemplos-de-consultas)

Nos exemplos listados abaixo, a autenticação já foi realizado e os tokens de usuário e aplicação já estão salvos na sessão:

#### Busca por código

[](#busca-por-código)

Buscando a disciplina de código **COM001**

```
// Carrega a classe de disciplina
$disciplinaGraphqlRequest = new DisciplinaGraphqlRequest();

// Recupera informações de disciplina por código
$disciplina =
    $disciplinaGraphqlRequest->queryGetById('COM001')
    ->getResults();
```

#### Busca de informações paginadas

[](#busca-de-informações-paginadas)

Busca uma **lista** de **até 3 disciplinas**

```
// Carrega a classe de disciplina
$disciplinaGraphqlRequest = new DisciplinaGraphqlRequest();

// Carrega a paginação solicitando até 3 registros
$pagination = new ForwardPaginationQuery(3);

// Recupera as informações de disciplinas
$disciplinas =
    $disciplinaGraphqlRequest
    ->queryList($pagination)
    ->getResults();
```

#### Carregando relacionamentos

[](#carregando-relacionamentos)

Busca a **disciplina** de código **COM001** e carrega o relacionamento **departamento**

```
// Carrega a classe de disciplina
$disciplinaGraphqlRequest = new DisciplinaGraphqlRequest();

// Recupera informações de disciplina por código
$disciplina =
    $disciplinaGraphqlRequest
        ->addRelationDepartamento()
        ->queryGetById('COM001')
        ->getResults();
```

Contribuindo para a biblioteca
------------------------------

[](#contribuindo-para-a-biblioteca)

### Repositório

[](#repositório)

O desenvolvimento é realizado na branch `dev`. Os mantenedores do respoitório levam as alterações aprovadas para a branch `master`.

### Ferramentas

[](#ferramentas)

Construindo a imagem, atualizando as bibliotecas e iniciando o container:

```
make
```

Executando as validações

```
make tests
```

Parando o container:

```
make clean
```

#### Testes

[](#testes)

PHP Unit:

```
make test
```

PHP Code Sniffer:

```
make lint-check
```

PHP Code Beauty Fixer:

```
make lint-fix
```

PHP Mess Detector:

```
make lint-md
```

PHP Security Checker:

```
make security-check
```

Documentação
------------

[](#documentação)

Mais informações: [Portal do Desenvolvedor](https://portal-dev-teste.dds.ufvjm.edu.br/)

Equipe Responsável
------------------

[](#equipe-responsável)

Divisão de Desenvolvimento de Sistemas

Parceiros
---------

[](#parceiros)

- PROGRAD - Sistema de Monitoria
- PROEXC - Sistema de Bolsas

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance54

Moderate activity, may be stable

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~92 days

Recently: every ~250 days

Total

21

Last Release

314d ago

PHP version history (2 changes)0.0.1PHP &gt;=7.1

0.0.17PHP ^7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/306d373259ebd1eac1bbb35616a83800db08c19960c0b9520fea529fefdf1aae?d=identicon)[evertonpaiva](/maintainers/evertonpaiva)

---

Top Contributors

[![evertonpaiva](https://avatars.githubusercontent.com/u/378542?v=4)](https://github.com/evertonpaiva "evertonpaiva (188 commits)")

---

Tags

clientgraphqlufvjm

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/ufvjm-graphql-client/health.svg)

```
[![Health](https://phpackages.com/badges/ufvjm-graphql-client/health.svg)](https://phpackages.com/packages/ufvjm-graphql-client)
```

###  Alternatives

[gmostafa/php-graphql-client

GraphQL client and query builder.

3217.6M25](/packages/gmostafa-php-graphql-client)[softonic/graphql-client

Softonic GraphQL client

1343.3M7](/packages/softonic-graphql-client)[alexaandrov/laravel-graphql-client

GraphQL client for laravel/lumen

125.6k](/packages/alexaandrov-laravel-graphql-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
