Um momento
Aula 15
Cursos / GraphQL com Express (Servidor Backend API JSON)
Root Query de GraphQL para Encontrar Produto Por Id

Summary

Resumo da Transcrição

Na transcrição, o objetivo é criar uma consulta (query) para buscar um produto pelo seu ID, utilizando GraphQL. O passo a passo é o seguinte:

  1. Estrutura da Query: A consulta deve ser semelhante àquela usada para buscar uma companhia por ID.

  2. Implementação:

    • A consulta começará na root query, que é a consulta raiz.
    • Um novo campo chamado produto será adicionado à root query, que aceitará um argumento id.
    • O tipo desse campo será produto type.
  3. Definição de Arguments:

    • Os argumentos incluirão o id, que será do tipo GraphQL Int e não pode ser null.
    • A função de resolução (resolve) irá usar o id para encontrar o produto correspondente.
  4. API e Resolução:

    • A API simulada precisará de uma função findProduct para buscar o produto pelo ID.
    • Dentro da função resolve, será necessário chamar a função API e passar o id que foi recebido dos argumentos.
  5. Execução e Teste:

    • Após salvar as configurações e reiniciar o servidor, a consulta será testada para garantir que retorna o produto correto.
    • Mensagens de erro são tratadas, e ajustes no código (como adicionar vírgulas) são realizados para garantir o funcionamento correto.
  6. Verificação dos Resultados:

    • O sistema de GraphQL permite verificar facilmente os tipos e as queries disponíveis, tornando o processo de desenvolvimento mais interativo.

No final, a implementação do produto por ID funcionou, e o usuário teve acesso aos detalhes do produto, como nome e companhia.

Conclusão

A aula ensinou como criar uma consulta GraphQL simples para buscar um produto por ID, abordando desde a definição do esquema até a execução da consulta e tratamento de erros.

Video Transcript

Nós vamos fazer uma query para pegar um produto por id. Vai ser a mesma maneira que a gente já fez para pegar um companhia por id. Eu quero ver você fazer primeiro, tenta fazer. Agora eu quero fazer a seguinte query, produto, passo id, e pega o nome do produto, e quero o companhia, me deu id, o nome da companhia. Eu quero que você faça essa query aqui. Pause o vídeo e depois a gente continua. E aí deu tudo certo. Vamos lá. O recurso é produto, vai ser lá no produto. Vai ser a root query primeiramente, porque está dentro do query, que é a query-raiz. Então vai ter que adicionar um campo da root query chamado produto, que leva como argumento o id. Vamos lá, de volta ao esquema.js, aqui embaixo no root query type. Os campos têm companhia plural, companhia singular, produtos plural, mas não tem produto no singular. Então você adiciona aqui a chave, produto, qual é o tipo, produto type. E agora, como é que fala o resolve? Tem também o args, se lembra? Porque a gente tem que dizer o id. Args tem o id que você vai passar, tipo o quê? É um GraphQL int, mas não pode ser no. Então fala em you, GraphQL, non, no, passa o GraphQL int como argumento. Então, produto vai ser tipo produto type. Argumentos têm um id que é tipo um GraphQL int inteiro, que não pode ser no. Então no resolve você vai dizer como encontrar o produto. Nesse caso é por id. Então o produto está na API, vamos olhar o api.index.js, tem findProducts plural, tem findProducts por companhia id, mas não tem o api simulado para encontrar o produto por id. Então vamos adicionar aqui, findProduct no singular e vou adicionar o id do produto. E é bem fácil retornar de novo. New Promise, resolve, reject, sempre assim. Então set time out para simular o espera. Nesse back end simulado, essa API simulada, se pedir simulado, resolve com o quê? A gente vai lá bater nos produtos, find o produto cujo produto.id é igual o id passado como argumento pela função. Então é isso, você vai encontrar o produto, o id é argumento. Se não encontrar, vai retornar no, tá? Salvar, então vamos dar o findProduct da API. Para dizer o GraphQL como encontrar o produto, vai dizer retorne. api.findProduct, qual o id? Agora o id está vindo do args, para pegar esse, o segundo argumento do resolve. Primeiro apparent value, o segundo é args, que é os argumentos passados. Então você vai usar args.id. Então é isso, salvar, vamos lá tentar novamente. O servidor já reiniciou porque eu estou usando node.mon. Então vou dar a query aqui, opa, deu problema. Vamos ver o que deu. resolve unexpected identifier, será que eu esqueci uma vírgula? Eu esqueci a vírgula aqui depois do args, eu adiciono a vírgula, salvar, reiniciou, então deixa eu comentar o primeiro produto e eu quero só ver nessa query produto por id. Então pegou o produto, nome iPad, companhia, Apple, tá certo? Vamos tentar o produto de id 4. Tá aí, surface, companhia id 3 Microsoft, vai adicionar o id do produto para conferir. Tá aí, id 4 mesmo. Então você pediu o produto por id, essa chave produto é um field do campo da root query, o argumento args.id aqui, 4, que é um GraphQL int. Tem até esse negócio legal aqui, se você dá o hover, deixar o mouse aqui, você pode clicar na root query type, ele te diz as queries que você pode fazer nos campos da root query type. Tem o companhia, você clica no produto, ele te mostra os fields. Isso é legal, do GraphQL aqui. Tem até o tipo int, o que é que é int. Você clica em produto, ele vai lá, leva o argumento id, e esse produto é uma lista de produtos. Companhia você vê aqui as coisas, que tem vários produtos. Muito legal para você ver o seu esquema aqui. Então para essa aula só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: