SlideShare uma empresa Scribd logo
Introdução ao GraphQL
Por @guigaoliveira
O que é GraphQL?
“GraphQL is a query language for your API, and
a server-side runtime for executing queries by
using a type system you define for your data.”
https://graphql.org/learn
Quem utiliza?
Introdução ao GraphQL
Qual a motivação?
Alguns cuidados/problemas com REST
Como o GraphQL ajuda
Visão geral
Visão geral
Os princípios básicos do GraphQL
Query para obter dados
Mutation para manipulação de dados
Subscription para obter dados em tempo real
Alguns conceitos
Queries: os clientes as enviam para especificar os dados de que precisam.
Schema: O contrato para comunicação cliente-servidor. Especifica quais consultas
os clientes podem fazer, o que pode ser buscado e os relacionamentos entre os
tipos.
Resolvers: Uma função ou método que resolve um valor para um tipo ou campo
no schema.
Query - Exemplo
POST /graphql Retorno
Query - Várias ao mesmo tempo e apelidos
POST /graphql Retorno
Query - Nested
POST /graphql Retorno
Mutation - Exemplo
POST /graphql Retorno
Mutation - Removendo dados
POST /graphql Retorno
Mutation - Caso de erro
POST /graphql Retorno
Schema
Scalar Types
Existem 5 tipos escalares integrados ao GraphQL: Int, Float, String, Boolean e ID.
Escalares podem ser personalizados:
Enums
Um Enum é semelhante a um tipo escalar, mas pode ser apenas um dos vários
valores definidos no esquema.
As diretivas e algumas aplicações
As diretivas e algumas aplicações
As diretivas e algumas aplicações
Resolvers
Os resolvers recebem os seguintes argumentos:
● root - Resultado do tipo anterior / pai
● args - argumentos fornecidos para o campo
● context - um objeto mutável que é fornecido a todos os resolvers
● info - contém (Abstract syntax tree) AST da consulta e mais
informações de execução
Resolvers
Default resolvers
Introdução ao GraphQL
Bibliotecas / Ferramentas
● Apollo Client/Server/Engine (React / Node.js)
● Relay (React)
● Prisma (Javascript/Typescript/Flow/Go/)
● GraphiQL
● GraphQL Editor
● GraphQL Voyager
● GraphQL Playground
● GraphQL Docs
OK...MAS E A DEMO?
Servidor:
https://codesandbox.io/embed/graphql-intro-server-pcc8w
Cliente:
https://codesandbox.io/embed/graph-intro-client-f4ekh
Referências
● https://graphql.org/
● https://www.apollographql.com/docs/
● https://alligator.io/graphql/graphql-sdl/
● https://pt.slideshare.net/AmazonWebServices/introduction-to-graphql-95577414
● https://yos.io/2016/11/02/graphql-in-an-age-of-rest/
● https://github.com/prisma/prisma/blob/master/docs/1.15/understand-prisma/introduction-to-graph
ql-server-development-aa02.mdx
● https://blog.codecasts.com.br/entendendo-o-que-%C3%A9-graphql-atrav%C3%A9s-de-exemplos
-c2fa35e8bf63
● https://pt.slideshare.net/brunolemos/graphql-apis-mais-robustas-e-flexveis
● https://www.howtographql.com/

Mais conteúdo relacionado

PPTX
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
PDF
GraphQL e WordPress, uma bonita união
PDF
Intro à Graphql
PPTX
Introdução ao GraphQL - Uma nova forma de criar APIs
PPTX
Introducao ao GraphQL
PDF
GraphQL 101
PPTX
GraphQL - Uma nova maneira de projetar api's
PDF
GraphQL ou APIs RESTful - DevDay 2017
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
GraphQL e WordPress, uma bonita união
Intro à Graphql
Introdução ao GraphQL - Uma nova forma de criar APIs
Introducao ao GraphQL
GraphQL 101
GraphQL - Uma nova maneira de projetar api's
GraphQL ou APIs RESTful - DevDay 2017

Semelhante a Introdução ao GraphQL (20)

PPTX
GraphQL - uma nova maneira de projetar api's
PDF
GraphQL - A Graph Query Language to your API
PDF
TDC2017 | POA Trilha Arquitetura - Thinking in GraphQL
PDF
GraphQL - aposta ou retrocesso?
PDF
GraphQL na Era das APIs
PDF
GraphQL: PUTs, onde foram parar os verbos HTTP?
PDF
De um sistema legado para micro serviços com GraphQL
PDF
PHP Community Summit - Do REST ao GraphQL com PHP
PPTX
GraphQL - APIs mais robustas e flexíveis
PDF
Do REST ao GraphQL com PHP
PPTX
Graphql - o que é, onde e porque usar?
PDF
Decoupled Drupal com GraphQL e React
PPTX
Utilizando graphQL em projetos .Net
PDF
GraphQL na GetNinjas (2017-09-20)
PDF
Criando um gateway de microserviços com GraphQL - Felipe Lopes
PDF
GraphQL: Como começar a usar no seu projeto AGORA
PDF
REST vs GraphQL - A batalha das APIs.pdf
PDF
REST vs GraphQL - A batalha das APIs.pdf
PDF
GraphQL - A Linguagem do Facebook para APIs
PPTX
GraphQL com .NET Core
GraphQL - uma nova maneira de projetar api's
GraphQL - A Graph Query Language to your API
TDC2017 | POA Trilha Arquitetura - Thinking in GraphQL
GraphQL - aposta ou retrocesso?
GraphQL na Era das APIs
GraphQL: PUTs, onde foram parar os verbos HTTP?
De um sistema legado para micro serviços com GraphQL
PHP Community Summit - Do REST ao GraphQL com PHP
GraphQL - APIs mais robustas e flexíveis
Do REST ao GraphQL com PHP
Graphql - o que é, onde e porque usar?
Decoupled Drupal com GraphQL e React
Utilizando graphQL em projetos .Net
GraphQL na GetNinjas (2017-09-20)
Criando um gateway de microserviços com GraphQL - Felipe Lopes
GraphQL: Como começar a usar no seu projeto AGORA
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
GraphQL - A Linguagem do Facebook para APIs
GraphQL com .NET Core
Anúncio

Último (7)

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

Introdução ao GraphQL