SlideShare uma empresa Scribd logo
GraphQL
A Graph Query Language to your API
Danilo Vitoriano
Meetup React SP @Cubo.Network
Dezembro 2017
Baseado na apresentação GraphQL & Relay de @zetavg
Introdução
API
"Application Programming Interface”
“Interface de Programação de Aplicativos"
RESTful
A evolução da API
“Representation State Transfer”
“Transferência de Estado Representacional”
/api/posts.json?cover=true&include=author,comments,avatar
REST API da bagunça
A Solução
GraphQL
Uma linguagem para consulta através de Grafos
Grafo
Conjunto onde os elementos são unidos por um arco
GraphQL - A Graph Query Language to your API
GraphQL - A Graph Query Language to your API
Breve História
• 2012 - Utilizada pelo app mobile do Facebook
• 2015 - Lançada publicamente
• 2016 - GitHub usa GraphQL para APIs públicas
2017
Assunto de maior interesse da React Conf Brasil
Fotos: Leandro Godoi
Sashko Stubailo
Apollo
James Bailey
Meteor
Raphael Costa
Pipefy
Quem usa
http://graphql.org/users/
Bibliotecas
https://github.com/chentsulin/awesome-graphql
Ecossistema
2017
GraphQL & Relay re-licenciados sob Licença MIT
Visão Geral
Todos os dados da sua
aplicação podem ser
representados como um grafo
GraphQL - A Graph Query Language to your API
Um subgrupo do grafo é utilizado 

para montar uma Interface do Usuário (UI)
GraphQL - A Graph Query Language to your API
GraphQL - A Graph Query Language to your API
GraphQL - A Graph Query Language to your API
GraphQL - A Graph Query Language to your API
Conceitos Básicos de
GraphQL
Consulta (Query) Básica
• Comece selecionando os campos na raiz da “consulta"
• Consulta aninhadas
Árvore de Consulta
• Cada consulta é uma árvore extraída do grafo
GraphQL - A Graph Query Language to your API
• Árvore da consulta
Tipos
• Receba o tipo de cada nó usando o metacampo
__typename
Documentando Tipos
Documentar os tipos de dados de cada nó
facilita quando você precisa consultar
alguma informação
GraphQL - A Graph Query Language to your API
Argumentos
• Cada campo pode definir alguns argumentos nele
• Campos aninhados também possuem argumentos
Fragmentos
• Pré definido

conjunto de 

campos como

fragmento de 

informação
Dados mutáveis com
Mutation
• Use mutation ao invés de query, 

e coloque dados nos argumentos
Resumo
http://graphql.org
• Descreva seus dados
• Pergunte pelo o que você deseja
• Receba resultados previsíveis
Bibliotecas Cliente
Como consumo GraphQL?
Apollo GraphQL
https://www.apollographql.com/
Relay
https://facebook.github.io/relay/
Obrigado
Danilo Vitoriano @dnvtrn

Especialista em TI
Foto:LeandroGodoi
reactconfbr.com.br
Foto por Rafael Ventura
Apresentação no Cubo Network 12/12/2017

Mais conteúdo relacionado

Semelhante a GraphQL - A Graph Query Language to your API (20)

PDF
Introdução ao GraphQL
Guilherme Oliveira
 
PDF
GraphQL 101
Paulo Pires
 
PDF
GraphQL na Era das APIs
Daniel Varanda
 
PPTX
PHPTalks 2019: GraphQL + Laravel
Jansen Felipe
 
PPTX
GraphQL - Uma nova maneira de projetar api's
Luiz Guilherme Bauer Fraga Moreira
 
PPTX
Introducao ao GraphQL
MVP Microsoft
 
PPTX
Utilizando graphQL em projetos .Net
MVP Microsoft
 
PDF
GraphQL e WordPress, uma bonita união
Leo Baiano
 
PDF
GraphQL na GetNinjas (2017-09-20)
Bruno Soares
 
PDF
GraphQL: Como começar a usar no seu projeto AGORA
Maira Bello
 
PDF
Decoupled Drupal com GraphQL e React
Cleber Gasparoto
 
PPTX
Graphql - o que é, onde e porque usar?
Paula Santana
 
PDF
REST vs GraphQL - A batalha das APIs.pdf
BrunoAlbuquerque864673
 
PDF
TDC2017 | POA Trilha Arquitetura - Thinking in GraphQL
tdc-globalcode
 
PPTX
GraphQL com .NET Core
MVP Microsoft
 
PDF
REST vs GraphQL - A batalha das APIs.pdf
BrunoAlbuquerque864673
 
PDF
De um sistema legado para micro serviços com GraphQL
Taller Negócio Digitais
 
PPTX
GraphQL - APIs mais robustas e flexíveis
Bruno Lemos
 
PPTX
Rest X Graphql .pptx
anajulia434497
 
PDF
Api do Facebook
inovarandre
 
Introdução ao GraphQL
Guilherme Oliveira
 
GraphQL 101
Paulo Pires
 
GraphQL na Era das APIs
Daniel Varanda
 
PHPTalks 2019: GraphQL + Laravel
Jansen Felipe
 
GraphQL - Uma nova maneira de projetar api's
Luiz Guilherme Bauer Fraga Moreira
 
Introducao ao GraphQL
MVP Microsoft
 
Utilizando graphQL em projetos .Net
MVP Microsoft
 
GraphQL e WordPress, uma bonita união
Leo Baiano
 
GraphQL na GetNinjas (2017-09-20)
Bruno Soares
 
GraphQL: Como começar a usar no seu projeto AGORA
Maira Bello
 
Decoupled Drupal com GraphQL e React
Cleber Gasparoto
 
Graphql - o que é, onde e porque usar?
Paula Santana
 
REST vs GraphQL - A batalha das APIs.pdf
BrunoAlbuquerque864673
 
TDC2017 | POA Trilha Arquitetura - Thinking in GraphQL
tdc-globalcode
 
GraphQL com .NET Core
MVP Microsoft
 
REST vs GraphQL - A batalha das APIs.pdf
BrunoAlbuquerque864673
 
De um sistema legado para micro serviços com GraphQL
Taller Negócio Digitais
 
GraphQL - APIs mais robustas e flexíveis
Bruno Lemos
 
Rest X Graphql .pptx
anajulia434497
 
Api do Facebook
inovarandre
 

Mais de Dan Vitoriano (20)

PDF
Node.js e Express
Dan Vitoriano
 
PDF
Workshop React Hooks
Dan Vitoriano
 
PDF
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
PDF
JavaScript das Ruas
Dan Vitoriano
 
PDF
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
Dan Vitoriano
 
PDF
Times digitais de alta performance - Tera e Endeavor
Dan Vitoriano
 
PDF
Mobile First e Offline First
Dan Vitoriano
 
PDF
React Native
Dan Vitoriano
 
PDF
Pdsp #3
Dan Vitoriano
 
PDF
Pdsp #2
Dan Vitoriano
 
PDF
Meetup Processos de Desenvolvimento São Paulo - Gamestorming
Dan Vitoriano
 
PPTX
Unit Test JavaScript
Dan Vitoriano
 
PDF
Untraceable electronic mail, return addresses and digital pseudonyms - David ...
Dan Vitoriano
 
PDF
The computer for the 21st century - Mark Weiser, 1991
Dan Vitoriano
 
PPTX
Especificações UX/UI CMA Tablet
Dan Vitoriano
 
PDF
User experience guidelines for Universal Windows Platform (UWP) appsUwp app d...
Dan Vitoriano
 
PDF
Fullcircle papers - Sobre Blogs
Dan Vitoriano
 
PPTX
Apresentação FEMUG-ABC
Dan Vitoriano
 
PPTX
Planejamento estratégico de comunicação digital - Dados sobre internet e mobi...
Dan Vitoriano
 
PPTX
Google Material Design - Conceito, aplicações, código e web components
Dan Vitoriano
 
Node.js e Express
Dan Vitoriano
 
Workshop React Hooks
Dan Vitoriano
 
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
JavaScript das Ruas
Dan Vitoriano
 
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
Dan Vitoriano
 
Times digitais de alta performance - Tera e Endeavor
Dan Vitoriano
 
Mobile First e Offline First
Dan Vitoriano
 
React Native
Dan Vitoriano
 
Pdsp #3
Dan Vitoriano
 
Pdsp #2
Dan Vitoriano
 
Meetup Processos de Desenvolvimento São Paulo - Gamestorming
Dan Vitoriano
 
Unit Test JavaScript
Dan Vitoriano
 
Untraceable electronic mail, return addresses and digital pseudonyms - David ...
Dan Vitoriano
 
The computer for the 21st century - Mark Weiser, 1991
Dan Vitoriano
 
Especificações UX/UI CMA Tablet
Dan Vitoriano
 
User experience guidelines for Universal Windows Platform (UWP) appsUwp app d...
Dan Vitoriano
 
Fullcircle papers - Sobre Blogs
Dan Vitoriano
 
Apresentação FEMUG-ABC
Dan Vitoriano
 
Planejamento estratégico de comunicação digital - Dados sobre internet e mobi...
Dan Vitoriano
 
Google Material Design - Conceito, aplicações, código e web components
Dan Vitoriano
 
Anúncio

GraphQL - A Graph Query Language to your API