Sobes.tech
Junior

O que é GraphQL?

sobes.tech IA

Resposta da IA

O GraphQL é uma linguagem de consultas para APIs e um ambiente de execução para realizar essas consultas. Permite ao cliente solicitar exatamente os dados de que necessita, definindo a estrutura da resposta. Ao contrário das APIs REST tradicionais, onde se solicitam endpoints, o GraphQL envia uma consulta a um único endpoint, especificando os campos requeridos.

Conceitos principais do GraphQL:

  • Esquema (Schema): Define os tipos de dados, as operações disponíveis (consultas, mutações, assinaturas) e as relações entre os tipos. Escrito em Schema Definition Language (SDL).
  • Tipos (Types): Definem a estrutura dos dados. Podem ser escalares (String, Int, Float, Boolean, ID), personalizados ou tipos de contêiner (Listas, Non-Null).
  • Consultas (Queries): Usadas para obter dados do servidor. O cliente indica quais os campos necessários, e o servidor devolve apenas esses campos.
  • Mutations (Mutations): Usadas para alterar dados no servidor (criar, atualizar, eliminar). Semelhantes às consultas, mas indicam claramente uma mudança de estado.
  • Assinaturas (Subscriptions): Permitem ao cliente receber atualizações em tempo real à medida que os dados mudam no servidor.

Vantagens do GraphQL:

  • Eficiência: O cliente solicita apenas os dados necessários, reduzindo a quantidade de informação transmitida e prevenindo a sobrecarga (overfetching).
  • Flexibilidade: O cliente define a estrutura da resposta, facilitando o desenvolvimento e a evolução da API.
  • Melhoria de desempenho: A obtenção eficiente de dados pode acelerar o carregamento das páginas.
  • Tipagem rigorosa: O esquema fornece um contrato claramente definido entre o cliente e o servidor, facilitando a validação e a deteção de erros.

Exemplo de consulta:

query GetUser {
  user(id: "123") {
    name
    email
    posts {
      title
    }
  }
}

Exemplo de mutação:

mutation CreatePost {
  createPost(input: { title: "Novo Post", content: "..." }) {
    id
    title
  }
}