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

PPTX
Introdução ao GraphQL - Uma nova forma de criar APIs
PDF
Intro à Graphql
PPTX
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
PDF
GraphQL - A Linguagem do Facebook para APIs
PDF
GraphQL - aposta ou retrocesso?
PDF
GraphQL ou APIs RESTful - DevDay 2017
PPTX
GraphQL - uma nova maneira de projetar api's
PDF
GraphQL: PUTs, onde foram parar os verbos HTTP?
Introdução ao GraphQL - Uma nova forma de criar APIs
Intro à Graphql
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
GraphQL - A Linguagem do Facebook para APIs
GraphQL - aposta ou retrocesso?
GraphQL ou APIs RESTful - DevDay 2017
GraphQL - uma nova maneira de projetar api's
GraphQL: PUTs, onde foram parar os verbos HTTP?

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

PDF
Introdução ao GraphQL
PDF
GraphQL 101
PDF
GraphQL na Era das APIs
PPTX
PHPTalks 2019: GraphQL + Laravel
PPTX
GraphQL - Uma nova maneira de projetar api's
PPTX
Introducao ao GraphQL
PPTX
Utilizando graphQL em projetos .Net
PDF
GraphQL e WordPress, uma bonita união
PDF
GraphQL na GetNinjas (2017-09-20)
PDF
GraphQL: Como começar a usar no seu projeto AGORA
PDF
Decoupled Drupal com GraphQL e React
PPTX
Graphql - o que é, onde e porque usar?
PDF
REST vs GraphQL - A batalha das APIs.pdf
PDF
TDC2017 | POA Trilha Arquitetura - Thinking in GraphQL
PPTX
GraphQL com .NET Core
PDF
REST vs GraphQL - A batalha das APIs.pdf
PDF
De um sistema legado para micro serviços com GraphQL
PPTX
GraphQL - APIs mais robustas e flexíveis
PPTX
Rest X Graphql .pptx
PDF
Api do Facebook
Introdução ao GraphQL
GraphQL 101
GraphQL na Era das APIs
PHPTalks 2019: GraphQL + Laravel
GraphQL - Uma nova maneira de projetar api's
Introducao ao GraphQL
Utilizando graphQL em projetos .Net
GraphQL e WordPress, uma bonita união
GraphQL na GetNinjas (2017-09-20)
GraphQL: Como começar a usar no seu projeto AGORA
Decoupled Drupal com GraphQL e React
Graphql - o que é, onde e porque usar?
REST vs GraphQL - A batalha das APIs.pdf
TDC2017 | POA Trilha Arquitetura - Thinking in GraphQL
GraphQL com .NET Core
REST vs GraphQL - A batalha das APIs.pdf
De um sistema legado para micro serviços com GraphQL
GraphQL - APIs mais robustas e flexíveis
Rest X Graphql .pptx
Api do Facebook
Anúncio

Mais de Dan Vitoriano (20)

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

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
Dos requisitos ao código: como criar código rastreável em PHP
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
apresentacao introducao computacao ead.pdf
Curso de Windows 11 resumido na prática.pptx
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Mapeamento de Objeto para Tabela Relacional
Evolução em código: algoritmos genéticos com PHP
Dos requisitos ao código: como criar código rastreável em PHP
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
apresentacao introducao computacao ead.pdf

GraphQL - A Graph Query Language to your API