Cursos Magento

GraphQL: Entenda o básico

,

Publicado em 06 de outubro de 2020

GraphQL (lê-se graf-quiu-el) é uma linguagem usada para fazer consultas em APIs. Em outras palavras, trata-se de uma nova forma de se consumir e criar APIs diferente do modo como fomos acostumados.

GraphQL vs. REST

Imagine que você está construindo uma página de categoria para um e-commerce.

Agora imagine que você não quis usar a tecnologia disponível nativamente na plataforma para personalizar o front end. No caso do Magento 2, você usaria KnockoutJS, RequireJS, mexeria com arquivos XML’s, sobrescreveria temas e módulos, entre outras coisas inerentes à sua customização de layout.

Ao invés disso você decidiu usar outra tecnologia e precisará consumir as APIs da plataforma para popular estes dados.

Você pode fazer isso da forma tradicional, com as APIs REST ou com as APIs GraphQL.

REST

No mundo REST você eventualmente teria que consultar algumas APIs e fazer algumas chamadas para obter os dados necessários para popular a página acima.

  • API de Produtos – para buscar os produtos desta categoria
  • API de Categorias – para listar outras categorias no menu
  • API de Cliente – para ver se o cliente está logado e mudar textos e links de navegação
  • API de Carrinho – para atualizar a quantidade de itens que o cliente tem no carrinho (exibida no canto superior)

E isso seria apenas o começo.

Obviamente, muitos destes resultados poderiam ser cacheados em um middleware, evitando que chamadas repetidas fossem feitas novamente.

Além de ter que fazer várias chamadas para obter os dados desta página, eventualmente estas APIs também trariam muitos dados que você não precisa. Por exemplo, a API de produtos eventualmente lhe trará diferentes tamanhos de imagem, e outros atributos que não precisamos nesta página.

GraphQL

Em uma API GraphQL ao invés de fazer diversas chamadas, você faria apenas uma.

Você solicita as informações que precisa, e somente aquelas informações são devolvidas.

A organização de uma API GraphQL é feita por tipos e campos e não por endpoints. Desta forma, APIs GraphQL geralmente possuem apenas uma URL.

Além disso, ao construir as chamadas no formato GraphQL usando um programa apropriado, geralmente temos recursos de autocompletar e acesso à boa parte da documentação exibida automaticamente.

No exemplo acima eu brinco um pouco com a API GraphQL do Magento 2.4 da Loja Demo (disponível para os alunos do Magenteiro).

GraphQL no Magento 2

A Adobe/Magento vem investindo pesado em tornar todas as partes e recursos da plataforma acessíveis na API GraphQL. E agora na versão 2.4 já podemos dizer que ela está “pronta para produção”, dando suporte a todos os tipos de produtos e muito mais.

Teste e comprove.

Você pode usar um software como GraphiQL (acima) – disponível também para Windows – para acessar o endpoint GraphQL da sua loja Magento 2 em www.sualoja.com/graphql.

Screenshot of GraphiQL with Doc Explorer Open

Alternativamente, você pode usar o próprio navegador para fazer chamadas à API. Basta adicionar usa query (como as acima) como parâmetro ?query na URL do seu endpoint.

Exemplo
https://www.minhaloja.com/graphql?query={categoryList(filters: {ids:{in: [“11″,”12”]}}) {id,name,children{id,name,}}}

É melhor usar o GraphiQL, não é mesmo? 🙂

Onde aprender?

Enquanto escrevo este artigo, não criei nenhum curso Magento sobre GraphQL. No entanto um dos melhores lugares que encontrei para aprender foi no site How To GraphQL (em Inglês). Ele traz uma série de vídeos e explicações sobre o assunto.

O site oficial do GraphQL e a Documentação GraphQL do Magento (ambos em Inglês) também são excelentes fontes para aprender mais sobre o assunto.

Há ainda um artigo bem completo em Português escrito pelo Emanuel de Souza onde ele aborda outros conceitos importantes sobre o assunto.

Conclusão

Embora o Magento 2 esteja mais maduro com as APIs REST, acredito que não devemos ignorar a existência das APIs GraphQL em nosso dia a dia. Elas certamente nos trazem uma agilidade no desenvolvimento e um resultado promissor. Porque não usar as duas? :O

Brincadeiras à parte, as APIs GraphQL já estão em uso em diversos projetos, inclusive aqueles com PWA. Mas isso é assunto pra outro dia.

O objetivo deste artigo foi fornecer uma rápida introdução sobre GraphQL. Certamente falaremos mais sobre isso em outros momentos.

Magento REST APIs

As APIs REST também são extremamente poderosas no Magento 2, e ofereço mais de 650 exemplos de uso delas no meu mini curso sobre o assunto. No Magenteiro você também encontra vários exemplos de uso gratuitamente.

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/graphql-basico/"]