GraphQL Playground
Executando queries no GraphQL Playground
GraphQL é uma linguagem criada pelo Facebook em 2015 para facilitar a comunicação com API’s, tanto pela interação sistema-sistema quanto pela humano-sistema – neste último caso há uma grande chance desse humano ser um desenvolvedor.
A linguagem foi desenhada para resolver o problema de underfetch (quando vem menos dados do servidor que o necessário, precisando fazer outra(s) requisição(ões) para trazer os dados desejados) – e overfetch (quando vem mais dados que o necessário do servidor). Como efeito colateral positivo, GraphQL também acaba reduzindo o número de requisições feitas a um servidor, já que é possível trazer todas as informações que uma página precisa em apenas uma requisição, ou, como a gente vai falar de agora em diante, query.
GraphQL não foi desenhada como uma solução para ser usada em apenas uma linguagem, mas uma especificação que pode ser implementada em qualquer linguagem, e é isso que vários projetos open-source tem feito.
Vale ressaltar que GraphQL é uma linguagem fortemente tipada, isto é, cada campo de suas consultas precisa ser de um determinado tipo.
Fonte: Blog Localweb
Material complementar:
As pessoas geralmente chamam tudo que chega até a API de um servidor GraphQL como uma "query". Porém, existe um monte de coisas misturadas junto. Como chamamos essas unidades que estamos solicitando ao servidor? Pode ser uma query, uma mutation ou uma subscription. A palavra "requisição" é geralmente associada à ideia de HTTP e transporte. Vamos começar com a definição de alguns conceitos.
Quais a diferenças partes de uma operação básica? Vamos olhar um simples exemplo de um documento GraphQL.
Esse documento mostra o principal bloco de construção do GraphQL, que especifica os dados que você está tentando recuperar.
A consulta acima é um formato abreviado do GraphQL, que permite definir uma operação de consulta de uma forma muito concisa. Mas existem três partes opcionais de uma operação GraphQL que ainda não foram utilizadas aqui. Você precisará dessas novas partes se desejar executar algo diferente de uma consulta ou passar variáveis dinâmicas.
Aqui está um exemplo que inclui tudo isso:
As variáveis são passadas separadamente do documento de consulta de uma maneira específica de transporte, Na implementação atual dos servidores GraphQL, geralmente usa-se JSON. Aque está como uma objeto variável Aqui está como seria uma variável para a consulta acima poderia ser:
GraphQL Playground é uma ferramenta gráfica, interativa, acessível no seu navegador como uma IDE para o servidor GraphQL. Foi criada pela Prisma e baseada no GraphiQL.
No Servidor de Testes, a ferramenta GraphQL Playground fica habilitada para você criar e testar suas consultas (queries) GraqhQL. Seguindo as boas práticas, no servidor de Produção essa ferramenta é desabilitada.
Alguns elementos importantes da ferramenta GraphQL Playground:
Outra ferramenta disponível para visualização das entidades e seus relacionamentos é o GraphQL Voyager. Nela é oferecida uma visão relacional do esquema, navegar interativamente e acessar sua documentação.
A autenticação é controlado por 2 tokens:
A autenticação pode ser acessada via Graphql diretamente na ferramenta interativa playground ou pelo sua aplicativo através de um graphql client.
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.
Execute a query de Autenticação , serão retornados 2 tokens:
Você deverá acrescentar os cabeçalhos retornados no HTTP Header das consultas que necessitam de autenticação.
Os tokens são do tipo JWT (JSON Web Token), o artigo O que é JSON Web Token? explica o seu funcionamento. De posse dos tokens, você pode utilizar o site jwt.io para decodificá-los e visualizar seu conteúdo.
A conta institucional é uma credencial composta por um nome de usuário (login) e uma senha, exclusivos, essenciais para usufruir de alguns serviços digitais da Universidade Federal dos Vales do Jequitinhonha e Mucuri (UFVJM).
A conta permite aos professores e técnicos da UFVJM acesso aos seguintes sistemas: e-Campus, e-mail institucional, Sistema Eletrônico de Informações (SEI), Sistema de Gestão de Chamados (GLPI), Boletim de Frequência, Reuse UFVJM e Novo Portal.
Caso você deseje utilizar a Conta Institucional da UFVJM como mecanismo de autenticação do seu sistema, seguem abaixo exemplos de sugestão de implementação, separados por linguagem.