Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

GraphQL - Fui Tapeado !!! ou não?

Quando ouvi falar do GraphQL me disseram que era uma coisa revolucionária e tal que era uma mão na roda porque as consultas trariam apenas os dados que vc quer,etc... mas assistindo as aulas do curso estão um pouco desapontado.

Eu imaginava que por exemplo quando eu fizesse a consulta

query {
clientes {
nome
}
}

O GraphQL iria de alguma forma interagir com o banco de dados e me retornar o resultado esperado, mas vejo pela aula que a query real executada pelo banco é um select * from clientes, logo a tal vantagem do GraphQL trazer "apenas oque você quer" é uma ilusão , já que quem está sendo executado na realidade é o select *, está correto esse entendimento que tive?

2 respostas
solução!

Bom dia, Ricardo! Tudo bom?

O GraphQL em si é um intermediário e não armazena dados então precisaremos sim consultar esses dados na nossa base de dados de alguma forma, através de resolvers. Esses dados não precisam vir necessariamente do banco direto, podem vir de qualquer lugar, então uma das vantagens do GraphQL é que, caso o projeto tenha várias APIs, nós conseguimos centralizar todas no GraphQL e o nosso cliente jamais vai saber quantas APIs temos!

Quando falamos que ele irá "trazer apenas o que você quer" é verdade por dois motivos:

  • Quem decide os dados que irão vir é o cliente, diferente de APIs REST que quem decide é o servidor.
  • Apesar de fazermos um SELECT * no back, os dados que irão ser carregados pelo front serão apenas os que ele solicitar (e aí entra a magia do GraphQL). Ele irá pegar os dados que possui e enviar apenas o que o cliente pediu, evitando aqueles casos de underfetch e overfetch de dados.

Mas essa é uma ótima discussão! Espero ter ajudado, qualquer coisa só me chamar :)

Abraços,

Obrigado Juliana, ainda tou um pouco frustrado rsrsrs, mas mesmo assim obrigado pelos esclarecimentos