SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
GraphQL
101
@caofrade
Objetivo
GraphQL
Novo padrão para APIs
Linguagem de Query (consulta)
Open-source mantido pela galera do Facebook
Quem usa?
MUITO, MAS MUITO
CONTEUDO
HYPE?
Que problema o GraphQL
resolve mesmo?
REST
REST
•Representational State Transfer
•Arquitetura baseada em recursos:
- Entidades do sistema
- Identificados por URIs
- Manipulado por representações (JSON, XML,
HTML)
Problemas
•Overfetching
- Download de dados desnecessários.
•Underfetching
- Acessar mais de 1 endpoint para juntar os dados
necessários.
GraphQL
Conceitos
Schema
•Recursos são definidos por um sistema de tipos
•Contrato entre cliente e servidor sobre como a
aplicação pode acessar os dados.
•Schema Definition Language (SDL)
Query
•No REST, múltiplos endpoints retornam estruturas de
dados fixas.
•Em GraphQL, existe um único endpoint, onde o cliente
determina qual dado é necessário.
Mutation
•Responsável por criar e mudar dados armazenados no
back-end.
Schema
•Query e Mutation também precisam ser definidos no
Schema
•São os pontos de entrada para as requisições enviadas
pelo cliente.
Como Usar?
facebook.github.io/relay
apollographql.com/client
GraphQL
não é
magica!
E não vai
matar o
REST!
Obrigado
@caofrade

Mais conteúdo relacionado

Semelhante a GraphQL 101: O padrão para APIs

REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
Introdução ao Google App Engine
Introdução ao Google App EngineIntrodução ao Google App Engine
Introdução ao Google App EngineRodrigo Amaral
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreBruno Roldão
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiiMasters
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Ricardo Ferreira
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadooptdc-globalcode
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 

Semelhante a GraphQL 101: O padrão para APIs (20)

REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Introdução ao GraphQL
Introdução ao GraphQLIntrodução ao GraphQL
Introdução ao GraphQL
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
Introdução ao Google App Engine
Introdução ao Google App EngineIntrodução ao Google App Engine
Introdução ao Google App Engine
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Web Services
Web ServicesWeb Services
Web Services
 
365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net Core
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
A Web é uma API
A Web é uma APIA Web é uma API
A Web é uma API
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
 
Bigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoopBigdata na pratica: Resolvendo problemas de performance com hadoop
Bigdata na pratica: Resolvendo problemas de performance com hadoop
 
Pentaho PDI
Pentaho PDIPentaho PDI
Pentaho PDI
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 

Mais de Paulo Pires

Side Effects: Uma Saga até o React
Side Effects: Uma Saga até o ReactSide Effects: Uma Saga até o React
Side Effects: Uma Saga até o ReactPaulo Pires
 
MobX: State Management made easy
 MobX: State Management made easy MobX: State Management made easy
MobX: State Management made easyPaulo Pires
 
We Work Remotely!
We Work Remotely!We Work Remotely!
We Work Remotely!Paulo Pires
 
NodeBR, um ano memoravel!
NodeBR, um ano memoravel!NodeBR, um ano memoravel!
NodeBR, um ano memoravel!Paulo Pires
 
Node.js and Google Cloud
Node.js and Google CloudNode.js and Google Cloud
Node.js and Google CloudPaulo Pires
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasPaulo Pires
 
Node não é filme de Terror
Node não é filme de TerrorNode não é filme de Terror
Node não é filme de TerrorPaulo Pires
 
A vida além do jQuery
A vida além do jQueryA vida além do jQuery
A vida além do jQueryPaulo Pires
 

Mais de Paulo Pires (12)

Side Effects: Uma Saga até o React
Side Effects: Uma Saga até o ReactSide Effects: Uma Saga até o React
Side Effects: Uma Saga até o React
 
MobX: State Management made easy
 MobX: State Management made easy MobX: State Management made easy
MobX: State Management made easy
 
We Work Remotely!
We Work Remotely!We Work Remotely!
We Work Remotely!
 
Angular 2
Angular 2Angular 2
Angular 2
 
NodeBR, um ano memoravel!
NodeBR, um ano memoravel!NodeBR, um ano memoravel!
NodeBR, um ano memoravel!
 
JS Mad Science
JS Mad ScienceJS Mad Science
JS Mad Science
 
Node.js and Google Cloud
Node.js and Google CloudNode.js and Google Cloud
Node.js and Google Cloud
 
Go e MongoDB
Go e MongoDBGo e MongoDB
Go e MongoDB
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js Seguras
 
ES6
ES6ES6
ES6
 
Node não é filme de Terror
Node não é filme de TerrorNode não é filme de Terror
Node não é filme de Terror
 
A vida além do jQuery
A vida além do jQueryA vida além do jQuery
A vida além do jQuery
 

GraphQL 101: O padrão para APIs