Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[FRONT IN VALE - 2019] - INTRODUÇÃO AO MARAVIL...
Search
Kamila de fatima santos oliveira
August 10, 2019
Programming
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[FRONT IN VALE - 2019] - INTRODUÇÃO AO MARAVILHOSO MUNDO DO GRAPHQL
Kamila de fatima santos oliveira
August 10, 2019
More Decks by Kamila de fatima santos oliveira
See All by Kamila de fatima santos oliveira
Tirando sua startup do papel com github spark + github copilot
kamilahsantos
0
69
De java para Kotlin: Como aprender e liderar times nessa linguagem
kamilahsantos
0
110
Quarkus-Club-criando-arquiteturas-escalaveis-na-pratica
kamilahsantos
1
100
System design 101 - Java day Noroeste
kamilahsantos
2
150
[Thasfin + Orange Juice na CPBR] Minha aplicação virou um monstrinho e agora ?
kamilahsantos
1
110
Minha aplicação virou um monstrinho e agora?
kamilahsantos
2
160
Spring + Localstack : usando aws de forma gratuita
kamilahsantos
2
310
Hacktoberfest DevsJavaGirl
kamilahsantos
0
200
[We are developers Java developer day ] - I will have to refactor ! And now ? Refactoring Techniques in Java
kamilahsantos
1
180
Other Decks in Programming
See All in Programming
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
420
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
150
アクセシビリティから考える情報設計
high_g_engineer
0
380
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
110
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
140
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
250
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
710
Building an Out-of-Order CPU
latte72
1
780
Featured
See All Featured
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
A Tale of Four Properties
chriscoyier
163
24k
Documentation Writing (for coders)
carmenintech
77
5.5k
A better future with KSS
kneath
240
18k
First, design no harm
axbom
PRO
2
1.3k
Making the Leap to Tech Lead
cromwellryan
135
10k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Product Roadmaps are Hard
iamctodd
55
13k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
Transcript
Maravilhoso mundo do Graphql INTRODUÇÃO AO
@kamila_code kamilahsantos /kamila-santos-oliveira @kamilah_santos Kamila Santos, 21 anos Developer @devsjavagirl
Quem é esse tal de Graphql Linguagem de consulta baseada
em grafos, criada pelo Facebook em 2012
Quem é esse tal de Graphql O retorno dos dados
é totalmente previsível, e tornou open-source em 2015.
Quem usa Graphql?
É tipo Rest? NÃO
É tipo Rest? Em Rest, ao realizar buscas, temos vários
endpoints, no GraphQl só temos um endpoint para acessar os dados do servidor
É tipo Rest? Em Rest temos estrutura de dados fixa,
o que faz com que sempre traga mais dados do que o necessário
É tipo Rest? No Graphql trazemos exatamente o que precisamos
da nossa API através da construção de queries.
Como funciona?
Como funciona? Query language, server-side runtime para execução dessas queries
a partir da definição de schema (tipagem)
Como funciona? Não está vinculado a nenhum banco de dados
específico ou mecanismo de armazenamento.
Como funciona? Um service é criado definindo types e fields
e depois criando funções para cada type e cada field
Como funciona?
Como funciona?
Queries? Com o seu service em execução, podemos enviar queries
para serem validadas e executadas.
Queries? Um query é recebida e verificada para que somente
retorne os types e fields informados na query e depois é executada
Queries?
Queries?
Fields? As queries solicitam fields específicos em objetos .
Fields?
Fields? As queries em Graphql permitem percorrer objetos relacionados e
seus campos em uma única solicitação
Fields?
Fields?
Arguments? Além de atravessar pelos objetos e campos podemos passar
argumentos na busca desses dados
Arguments?
Arguments?
Arguments? Podemos passar argumentos para campos escalares, para fazer conversões
de dados no server em vez de cada client individualmente.
Arguments?
Arguments?
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.
Aliases Para resolver isto, podemos criar aliases, para renomear o
resultado do campo para algo mais descritivo que deseje.
Aliases
Aliases
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?
Fragments NÃO. Com os fragments podemos construir conjuntos de campos
e inclui-los nas consultas necessárias
Fragments
Fragments
Fragments
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.
Usando variables em fragments Temos a possibilidade de usar variáveis
nos fragments das nossas consultas
Usando variables em fragments
Usando variables em fragments
Usando variables em fragments
Variáveis Para argumentos dinâmicos, o client pode precisar manipular os
arquivos em runtime e seriariza-la em formato em Graphql.
Variáveis O Graphql vai pegar esses dados e passar como
um dicionário separado.
Variáveis Substitua o valor estático na consulta por $variableName
Variáveis Declarar $variableNamecomo uma das variáveis aceitas pela consulta
Variáveis Passe variableName: value no dicionário de variáveis separado, específico
do transporte (geralmente JSON)
Variáveis
Variáveis
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
Directives @include(if: Boolean) Inclui somente se o resultado do campo
é true @skip(if: Boolean) pula o argumento se o elemento for true
Directives
Directives
Directives
Mutations? Da mesma forma que as Queries, nas Mutations podemos
passar campos aninhados
Mutations?
Mutations?
Mutations?
Schemas and Types
Schemas and Types
Interfaces Abstrai um conjunto de campos para serem implementados
Interfaces
Interfaces
Interfaces
Servers Clients
Referências https://graphql.org/learn https://graphql.org/code/#server-libraries https://graphql.org/code/#graphql-clients https://tableless.com.br/graphql-a-nova-era-d as-apis-web/
Referências https://speakerdeck.com/ketemartinsrufino/gr aphql-para-reduzir-complexidade-no-front-e-n o-back https://www.slideshare.net/PaulaSantana12?ut m_campaign=profiletracking&utm_medium=ss site&utm_source=ssslideview
Referências https://medium.com/idexo-developers/graphql -e-rest-quais-as-diferen%C3%A7as-99cae22871 a7 https://www.apollographql.com/ https://relay.dev/
Referências https://www.graph.cool/ https://hasura.io/
Obrigada <3