Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[FRONT IN VALE - 2019] - INTRODUÇÃO AO MARAVILHOSO MUNDO DO GRAPHQL

[FRONT IN VALE - 2019] - INTRODUÇÃO AO MARAVILHOSO MUNDO DO GRAPHQL

More Decks by Kamila de fatima santos oliveira

Other Decks in Programming

Transcript

  1. Quem é esse tal de Graphql Linguagem de consulta baseada

    em grafos, criada pelo Facebook em 2012
  2. Quem é esse tal de Graphql O retorno dos dados

    é totalmente previsível, e tornou open-source em 2015.
  3. É tipo Rest? Em Rest, ao realizar buscas, temos vários

    endpoints, no GraphQl só temos um endpoint para acessar os dados do servidor
  4. É tipo Rest? Em Rest temos estrutura de dados fixa,

    o que faz com que sempre traga mais dados do que o necessário
  5. É tipo Rest? No Graphql trazemos exatamente o que precisamos

    da nossa API através da construção de queries.
  6. Como funciona? Não está vinculado a nenhum banco de dados

    específico ou mecanismo de armazenamento.
  7. Como funciona? Um service é criado definindo types e fields

    e depois criando funções para cada type e cada field
  8. Queries? Um query é recebida e verificada para que somente

    retorne os types e fields informados na query e depois é executada
  9. Arguments? Podemos passar argumentos para campos escalares, para fazer conversões

    de dados no server em vez de cada client individualmente.
  10. Aliases Os fields do objeto do resultado correspondem ao nome

    do campo na consulta, não seria possível consultar diretamente o mesmo campo com argumentos diferentes.
  11. Aliases Para resolver isto, podemos criar aliases, para renomear o

    resultado do campo para algo mais descritivo que deseje.
  12. Fragments Imagine uma situação que você tem duas pessoas e

    quer exibi-las lado a lado junto com seus amigos, precisaríamos repetir os campos um para cada lado da comparação?
  13. Fragments A ideia dos fragments é recomendada em situações em

    que precisamos dividir os requisitos de dados do aplicativo em parte menores, quando precisa combinar componentes da UI com vários fragments diferentes numa busca inicial.
  14. Variáveis Para argumentos dinâmicos, o client pode precisar manipular os

    arquivos em runtime e seriariza-la em formato em Graphql.
  15. Directives Podem ser anexadas a um field ou inclusão de

    fragment, podendo alterar a execução da consulta da forma que o servidor desejar
  16. Directives @include(if: Boolean) Inclui somente se o resultado do campo

    é true @skip(if: Boolean) pula o argumento se o elemento for true