Apidog

All-in-one Collaborative API Development Platform

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Inscreva-se gratuitamente
Home / Ponto de vista / Tutorial de GraphQL: O que é GraphQL

Tutorial de GraphQL: O que é GraphQL

O que é GraphQL? Quais são seus casos de uso? Este artigo irá te apresentar o básico do GraphQL, então, se você quiser aprender mais sobre isso, não perca.

Nos últimos anos, você certamente ouviu falar de uma linguagem chamada GraphQL. Então, o que é GraphQL? Quais são os cenários de uso? Este tutorial irá apresentá-lo ao básico do GraphQL, então, se você quiser aprender mais sobre GraphQL, não perca.

O que é GraphQL

GraphQL é uma linguagem de consulta e um motor de execução do lado do servidor para APIs. Ela fornece uma especificação completa para consultas de APIs, permitindo que os servidores retornem apenas os dados necessários, sem redundância. Diferente das APIs RESTful, as requisições GraphQL exigem menos requisições e oferecem aos desenvolvedores mais certeza sobre os resultados retornados.

Cenários de Uso do GraphQL

Os desenvolvedores querem trabalhar de forma mais rápida e eficiente, e o sistema de tipos do GraphQL permite que eles especifiquem os campos de dados precisos que precisam do servidor para corresponder ao modelo de dados de seu aplicativo. O GraphQL continua a se tornar cada vez mais popular, incluindo:

  • Projetando APIs com estruturas de dados complexas: Projetar APIs com estruturas de dados complexas e em camadas pode ser desafiador para APIs RESTful. No entanto, o GraphQL facilita o design de APIs com estruturas de dados complexas porque a estrutura de dados exigida pelo cliente pode ser definida com clareza.
  • Desenvolvendo aplicativos móveis e aplicativos de página única (SPAs): Aplicativos móveis e SPAs frequentemente precisam recuperar dados de vários endpoints de API. No entanto, com o GraphQL, você pode obter os dados necessários de um único endpoint de API, reduzindo o tráfego de rede e melhorando o desempenho.
  • Separação entre front-end e back-end: O GraphQL possibilita a separação entre front-end e back-end, permitindo que ambas as equipes desenvolvam de forma independente. Isso acelera o processo de desenvolvimento e melhora a produtividade da equipe.
  • Consultas personalizadas e autenticação: O GraphQL permite que você personalize os dados que os clientes precisam. O GraphQL também fornece recursos flexíveis de autenticação e autorização, tornando-o adequado para aplicativos que exigem alta segurança.

No geral, o GraphQL é útil em várias situações, como projetar APIs com estruturas de dados complexas, desenvolver aplicativos móveis de alto desempenho e SPAs, e separação entre front-end e back-end.

A História do GraphQL

O GraphQL foi criado pelo Facebook em 2012 como um projeto interno para aprimorar a recuperação e manipulação de dados para seus aplicativos móveis.

Em 2015, o Facebook liberou o GraphQL para o público, levando à sua ampla adoção entre grandes empresas de tecnologia como GitHub e Twitter. Suas capacidades de consulta de dados declarativas e flexíveis rapidamente o tornaram uma parte essencial do ecossistema moderno de desenvolvimento.

Em 2018, a GraphQL Foundation foi estabelecida para apoiar seu desenvolvimento aberto e a governança orientada pela comunidade, solidificando ainda mais sua posição como uma ferramenta poderosa para construir APIs eficientes. Hoje, o GraphQL continua a prosperar e revolucionar a maneira como os desenvolvedores projetam e interagem com APIs.

Especificação do GraphQL: Esquema, campos, Consulta e Parâmetros

O esquema do GraphQL define os tipos, consultas, mutações e campos de assinatura disponíveis na API GraphQL. Aqui está a definição dos termos básicos:

  • Tipos de objeto: Usados para definir os campos dos objetos no modelo de dados. Por exemplo, um objeto usuário possui campos como nome e e-mail.
  • Campos: Definem os tipos de dados que o servidor GraphQL pode recuperar ao executar uma consulta. Os campos normalmente pertencem a tipos de objeto, mas às vezes são definidos como tipos escalares. Tipos escalares incluem strings, inteiros, floats, valores booleanos, IDs, etc.
  • Consulta: Define o ponto de entrada para consultas na API GraphQL. Consultas são usadas para recuperar dados do servidor GraphQL.
  • Mutações: Define o ponto de entrada para mutações na API GraphQL. Mutações são usadas para alterar dados no servidor GraphQL.
  • Assinatura: Define o ponto de entrada para assinar a API GraphQL. Assinaturas são usadas para receber atualizações de dados em tempo real do servidor GraphQL.

Esquemas

Um modelo de dados é usado para definir a estrutura de dados das entidades de objeto e as relações entre elas. Por exemplo, ele especifica quais atributos um objeto possui. O diagrama a seguir representa um modelo de dados completo, que define uma Consulta para consultar dados e dois objetos de retorno, Cabeçalho e Consulta.

Esquemas

Campo

Nas consultas GraphQL, o servidor retorna a estrutura de dados solicitada ao cliente com resultados precisos para cada campo solicitado. Os campos de resposta do servidor correspondem aos campos solicitados pelo cliente. Como mostrado no diagrama a seguir, com base no exemplo definido acima, dois campos foram solicitados e dois resultados de campo foram retornados. A ferramenta de referência utilizada é APOLLO.

Campo

Parâmetros

Ao consultar dados, parâmetros podem ser passados para especificar os critérios da consulta. Por exemplo, no diagrama a seguir, o objeto pessoa é consultado com o parâmetro id para recuperar dados de atributo relacionados. O id real pode ser inserido na seção de variáveis abaixo para a consulta. A ferramenta de referência utilizada é APOLLO.

Parâmetros

Casos de Execução

Exemplo 1: Saída de resultados completos de dados com base no modelo de dados.

Caso de Execução

Exemplo 2. Saída apenas da propriedade selecionada.

Saída da Propriedade

Prós e Contras do GraphQL

Após entender alguns conceitos básicos e o uso do GraphQL, vamos analisar brevemente as vantagens e desvantagens de usar o GraphQL.

Prós do GraphQL

  • O GraphQL pode consultar todos os dados usando apenas uma fonte de dados. Todas as requisições podem acessar um único endpoint de servidor.
  • A resposta do GraphQL corresponde precisamente aos campos solicitados pelo cliente, reduzindo a interferência entre o cliente e o servidor.
  • O GraphQL suporta a definição e transmissão de todos os tipos de dados, incluindo a transmissão de parâmetros nas requisições.
  • O GraphQL agora possui muitas plataformas de ferramentas de código aberto, plugins e extensões.

Contras do GraphQL

  • Desenvolvedores que estão familiarizados com requisições RESTful podem precisar gastar algum tempo aprendendo GraphQL.
  • Comparado ao desenvolvimento de interfaces RESTful, os desenvolvedores de servidor podem precisar gastar mais tempo desenvolvendo modelos de dados de fácil manutenção.

O GraphQL possui muitas mais características interessantes e usos em profundidade. Aqui recomendamos tentar a ferramenta de referência APOLLO GraphQL que é adequada para exploração.

Além disso, o Apidog atualmente integra a funcionalidade de depuração do GraphQL, e também convidamos você a experimentar Apidog.

Junte-se à Newsletter da Apidog

Inscreva-se para ficar atualizado e receber os últimos pontos de vista a qualquer momento.