Junior
O que é GraphQL?
sobes.tech IA
Resposta da IA
O GraphQL é uma linguagem de consulta para APIs e um ambiente de execução para realizar essas consultas aos seus dados. Oferece uma alternativa ao REST, permitindo ao cliente solicitar apenas os dados de que necessita, numa única consulta.
Conceitos-chave:
- Esquema: Define os tipos de dados disponíveis na API, as suas relações e as operações disponíveis (consultas, mutações, subscrições).
- Consultas (Queries): Usadas para ler dados. O cliente indica quais os campos que precisa.
- Mutations: Usadas para modificar dados (criar, atualizar, eliminar).
- Subscrições (Subscriptions): Usadas para receber dados em tempo real através de uma ligação persistente (por exemplo, WebSocket).
Exemplo de consulta:
query GetUserData {
user(id: "123") {
name
email
posts {
title
}
}
}
A resposta a esta consulta pode parecer assim:
{
"data": {
"user": {
"name": "Ivan",
"email": "ivan@example.com",
"posts": [
{ "title": "O meu primeiro artigo" },
{ "title": "Sobre o GraphQL" }
]
}
}
}
Vantagens sobre REST:
- Evitar a sobrecarga de dados (Over-fetching): O cliente recebe apenas os campos solicitados.
- Evitar a subcarga de dados (Under-fetching) / Múltiplas consultas: Permite frequentemente obter toda a informação necessária numa única consulta, ao contrário do REST, onde podem ser necessárias várias solicitações a diferentes endpoints.
- Tipagem forte: O esquema fornece documentação clara e validação das consultas.
- Melhor desempenho: Menor volume de dados transmitidos.
- Flexibilidade no lado do cliente: Os clientes podem evoluir independentemente do servidor, solicitando dados conforme necessário.
Desvantagens:
- Complexidade na configuração do lado do servidor.
- Problemas com cache em comparação com métodos padrão de cache REST (por exemplo, ao nível HTTP).
- É mais difícil tratar erros em comparação com REST (que usa códigos de estado HTTP padrão).