Um momento
Aula 07
Cursos / GraphQL com Express (Servidor Backend API JSON)
Esquema de GraphQL para Companhia (Aula de API JSON com Express)

Summary

Resumo da Aula sobre GraphQL

Nesta aula, o instrutor apresentou como criar um tipo de objeto em GraphQL chamado "companhia". A seguir, um resumo das etapas e conceitos abordados:

  1. Definição do Tipo Compania:

    • O tipo de objeto é criado através de GraphQLObjectType.
    • Estrutura do tipo inclui:
      • id (tipo: GraphQLInt)
      • nome (tipo: GraphQLString)
  2. Implementação:

    • O tipo é nomeado como "companhia" e os campos são definidos como fields.
    • O código básico para definição é:
      const companhiaType = new GraphQLObjectType({
        name: 'Companhia',
        fields: {
          id: { type: GraphQLInt },
          nome: { type: GraphQLString }
        }
      });
      
  3. Consulta e Resolução:

    • O instrutor simula uma consulta no GraphQL para verificar quais dados podem ser retornados.
    • A consulta pode ser ajustada para retornar apenas o id, o nome ou ambos, dependendo da solicitação do cliente.
    • O servidor filtra e responde apenas com os dados solicitados, utilizando o resolver.
  4. Demonstração:

    • Mostra como, ao enviar uma query para o servidor, somente os campos solicitados são retornados:
      • Exemplo de query para obter apenas o id:
        {
          companhia {
            id
          }
        }
        
      • Resposta: Apenas o ID é retornado.
  5. Conceitos Chave:

    • GraphQL permite que o cliente especifique exatamente quais dados precisa, evitando o envio de dados desnecessários.
    • A comunicação entre o cliente e o servidor é gerenciada pelo middleware express-graphql.

Conclusão

A aula finaliza com a reafirmação de que a construção de tipos em GraphQL é feita através da definição de campos e tipos, permitindo um controle preciso sobre a manipulação de dados. O instrutor encoraja a prática e a exploração do GraphQL em projetos futuros.

Video Transcript

Então, vamos de volta, vamos fazer um tipo, um esquema para companhia. Vamos lá aqui, no arquivo esquema, pronto, já está. Vamos fazer o variable chamada companhia type. Esse variável vai ser um novo new, graphKL object type. Seu tipo objeto. Vamos definir, descrever a estrutura, como é que é esse objeto para a companhia. A gente já viu antes, e vai ser assim, ó. Tá? Dessa maneira, um id e um nome. Então, vamos lá. Você faz isso aí, sempre tem os mesmos campos. A mesma propriedade de objeto. Primeiro nome desse cara. Nem vai ser o quê? Companhia. Aí depois, diz os campos, fields. Esse campo é id e nome. Então, vamos dizer id. Então, id tem tipo o quê? Type. GraphKL. Opa, mais, qual o número? Como é que faz o número? Então, vamos lá na referência. Vai aqui no Firefox. Lá naquele mesmo. GraphKL, no NPM. Vamos ver como é que vai lá. Você procura. Number. Vê se tem, não tem. Integer, não tem. Então, vamos ver aqui. Referência. Desse tem aqui embaixo. Eu quero olhar na referência deles. Os tipos, né? Lá no GitHub. Tá aqui. Vai para essa página. GraphKL.org. GraphKL.js Escrevendo código. Você o quê? Ah, tem aqui os tipos. Olha aqui. Do lado direito. A gente já sabe GraphKL string. A gente já sabe GraphKL object type. Acho que a deu o número. Será que tem int? Ah, tá aqui. Olha aqui o int. GraphKLskill representa o inteiro. A gente pode usar esse cara. GraphKL int. Tá? Vamos tentar usar. Vamos colocar GraphKL int para o id. Vamos requerir lá acima. GraphKL int. Aí, vamos ver aqui. Depois do id tem o quê? O nome. A companhia. É o tipo que é type. GraphKL string. Já viu. Já aprendeu esse cara. Então, a companhia tem... A gente está descrevendo o tipo, companhia, o nome do tipo, as campos, fields, id, nome. O id é tipo GraphKL int. Nome, tipo GraphKL string. Então, tá legal isso. Aí, você volta aqui, em vez de falar type string, você fala companhia type. Referência àquela variável que a gente definiu aqui em cima. Agora, para o resolve, é que o negócio... A gente não tem banco de dados, né? Para testar isso. Então, se tivesse banco de dados, vamos supor que esse cara iria retornar o objeto. Dessa maneira aqui, vamos fazer uma companhia com um file, um id, sei lá, um, dois, três. E, nome, ah, pô. Retornar esse objeto. GraphKL vai saber que é um tipo, companhia, que vai ter o id, o nome, tá? Aí, vamos salvar. Olha o que acontece aqui. Vamos lá, de volta para o navegador, para o GraphKL localhost, barra GraphKL, assim, note que a query aparece aqui, ó. Se você quiser digitar aqui também. Ah, vou dar de novo. Deu erro porque a gente tem que escolher, especificar, a gente tem que dizer o que a gente quer da companhia, tá? A companhia, eu quero o id, só o id. Você note o que aconteceu. O GraphKL te deu exatamente aquilo que você pediu. Eu quero que você me dê o id da companhia. E ele te deu só o id. Norte que lá no código, eu retornei o id e o nome, como se fosse retornando do banco de dados. Mas o GraphKL é responsável por ver esse negócio. Ah, o cliente só pediu id, então só vão mandar o id. Então ele corta o nome da cara, tá? Se você quiser só o nome, é só dizer nome aqui, ó. A gente companhia nome, só o nome apareceu. Se quiser a dois, ambos, só dizer id e o nome, tá? Olha aí. Tá certo? Então esse é o GraphKL. Você pede exatamente os dados que você precisa. Nada mais, nada menos. Exatamente o que você precisa. E tá aí. Então na sala a gente aprendeu, na sala, a fazer nosso próprio tipo, companhia, type. Sempre assim você faz GraphKL Object Type, New, Name and Fields. Name é o nome do recurso, Fields é os campos. Tem id, tem nome. Aí você define o tipo de cada campo com type, GraphKL int, GraphKL string. Aí aqui no query, você adiciona query, nesse caso só companhia, quando você bater lá e perguntar, me dá um companhia aí. E eu preciso do id e do nome. O GraphKL vai aqui, ele pega o valor retornado, resolve, e filtra as propriedades que você não quiser e manda de volta pro cliente. Então é tudo feito do servidor, pelo middleware, express GraphKL. Tá bom? Por essa aula é só ir até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: