Desenvolvimento

21 out, 2017

Tudo o que você quer saber sobre GraphQL

Publicidade

Na sala Grace Hopper, no InterCon 2017, quem assumiu o palco foi o engenheiro de software Ubiratan Soares.

O que é GraphQL?

É uma spec, assim como o Rest. Foi pensado para resolver algumas dores de cabeça do Rest. Ele endereça alguns desses problemas. Ele amplamente amigável ao mobile e utiliza um modelo de licença que não inspira medo. O GraphQL impõe um contrato bem definido, chamado de schema, onde há um type system. Ao fazer uma chamada de introspeção, nos deparamos com um json repleto de informações.

“Para entendermos a existência do GraphQL, precisamos falar da API Rest. O padrão Rest não levava em consideração como nossas aplicações interagem com os devices e evoluem, o que acaba trazendo muitos problemas”. Ao falamos de produtos digitais, podemos dizer que existe uma espécie de ciclo, onde o produto passa por uma evolução e adaptação. Quando um produto demanda novas features, devemos evoluir nossa API Rest para atender ao produto. Usuários estão amplamente conectados, usufruindo dos produtos”. – Ubiratan Soares

Principais problemas do Rest

Entre os principais problemas do Rest, estão:

  • Versionamento: Não existe um jeito certo para versionar uma Rest API
  • Múltiplos endpoints para resolver uma necessidade específica do cliente
  • Endpoints acabam expondo mais dados do que necessário

Os conceitos chave do GraphQL

Entre as vantagens do GraphQL, Ubiratan listou algumas das principais:

  • Limita o número de endpoints para o mínimo possível
  • Possui um contrato bem definido onde o client e o server devem respeitar um schema para troca de dados efetiva
  • Fim do overfetching: O GraphQL te dá um mecanismo para que você obtenha a informação que você precisa e nada mais, sem gastos de dados desnecessários
  • Fim do underfetching: Com o GraphQL, você poderá os dados necessários em uma única chamada
Estrutura do GraphQL

Para encerrar a apresentação, Soares falou um pouco sobre haver ou não riscos ao utilizar o GraphQL. Um dos exemplos na discussão, foi o caso de licenças do Facebook envolvendo o React e o GraphQL, onde a rede social acabou cedendo.