SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Drupal 8
Decoupled com GraphQL e React
Cleber Gasparoto • Full Stack Developer • chgasparoto@gmail.com
Cleber Gasparoto • Full Stack Developer • chgasparoto@gmail.com
Cleber Gasparoto
Full Stack Developer na CI&T
● Web developer há 8 anos
● PHP, CodeIgniter, Laravel, jQuery
● Drupaleiro há 2 anos e meio
● 4 projetos internacionais e 1 nacional
● Full Stack há 2 meses
● @clebergasparoto | https://drupal.org/u/chgasparoto
Empresa global, presente
no Brasil, EUA, Europa,
Japão e China.
Referência Drupal, com
centenas de contribuições
na comunidade.
CI&T - Colabore, Inove, Transforme • http://ciandt.com • https://drupal.org/cit
Tópicos
● GraphQL
● GraphQL e Drupal
● React + Apollo
● Tudo junto
GraphQL
● Resolve dois problemas do mundo REST
● Over Fetching (sobrecarga) de dados
● Under Fetching (falta) de dados
● Faz todo o processamento em apenas
uma requisição
Porque existe?
REST
URL Método Operação
/<name> POST Cria um registro
/<name> GET Obtém todos os registros
/<name>/:id GET Obtém o registro com o id fornecido
/<name>/:id PUT/PATCH Atualiza o registro com o id fornecido
/<name>/:id DELETE Deleta o registro com o id fornecido
● O GraphQL é uma linguagem de consulta
a dados para API's desenvolvida e usada
pelo Facebook desde 2012.
● Em Julho de 2015 se tornou Open
Source, portanto é uma tecnologia
relativamente muito recente, mas
também muito poderosa.
O que é?
Grafos
User
User
Post
Followers
Post
http://graphql.org/users/
● Schema
● Tipos de Dados (Fortemente tipado)
● Validação dos dados
● Sabe exatamente o que pode ser
requisitado
● Entrega "somente" o que foi requisitado
● Versionless
Como funciona?
http://graphql.org/
Schema
Gerando um Schema com PHP
https://github.com/Youshido/GraphQL/blob/ma
ster/examples/02_blog/Schema/BlogSchema.
php
Gerando um Schema com Node e Express
https://github.com/StephenGrider/Lyrical-Grap
hQL/blob/master/server/schema/root_query_ty
pe.js
Drupal
composer require drupal/graphql
OU
https://www.drupal.org/project/graphql
Instalação
Como usar?
Básico
● Primeiro aprenda GraphQL (http://graphql.org/learn) (https://www.howtographql.com)
● Use o GraphiQL
○ Vem junto com o módulo, acesso através de /graphql/explorer
○ Ctrl+space é o seu melhor amigo, sério!
Como usar?
Avançado
● Implementar um módulo customizado
● Utilizando Plugin API e Plugin Annotations do Drupal
● Tirar como exemplo o módulo graphql_core
● Exemplo: https://www.amazeelabs.com/en/blog/extending-graphql-part1-fields
● Exemplo: https://www.amazeelabs.com/en/blog/extending-graphql-part-2
Demonstração
React + Apollo
React
● Uma biblioteca JavaScript para construir interfaces de
usuário.
● Baseado em componentes.
● Componente é escrito em Javascript ao invés de
templates, assim fica fácil passar os dados através da sua
aplicação e manter o estado fora do DOM.
Apollo
● Apollo provê uma API GraphQL universal em cima de um
serviço, sendo possível construir novas funcionalidades
rapidamente sem esperar pelo backend.
● Queries, caching, mutations, optimistic UI, subscriptions,
pagination, server-side rendering, prefetching, e mais.
Tudo Junto
Arquitetura
React
Apollo
DrupalGraphQL
Front-end Back-end
Demonstração
Perguntas?
Referências
● http://graphql.org/
● https://www.howtographql.com/
● https://github.com/drupal-graphql/graphql
● https://reactjs.org/
● https://www.apollographql.com/
● https://www.amazeelabs.com/en/blog/drupal-graphql-react-apollo
Obrigado!
chgasparoto@gmail.com | @clebergasparoto | https://drupal.org/u/chgasparoto

Mais conteúdo relacionado

Mais procurados

Mais procurados (9)

Como é ser uma Front-end em 2018
Como é ser uma Front-end em 2018Como é ser uma Front-end em 2018
Como é ser uma Front-end em 2018
 
#4 - Git - Stash
#4 - Git - Stash#4 - Git - Stash
#4 - Git - Stash
 
Introdução ao kotlin
Introdução ao kotlinIntrodução ao kotlin
Introdução ao kotlin
 
Grunt
GruntGrunt
Grunt
 
Vamos automatizar! Conheça o Gulp Js
Vamos automatizar! Conheça o Gulp JsVamos automatizar! Conheça o Gulp Js
Vamos automatizar! Conheça o Gulp Js
 
Pipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbotPipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbot
 
Automatize suas tarefas: conheça o GulpJS.
Automatize suas tarefas: conheça o GulpJS.Automatize suas tarefas: conheça o GulpJS.
Automatize suas tarefas: conheça o GulpJS.
 
GraphQL com .NET Core
GraphQL com .NET CoreGraphQL com .NET Core
GraphQL com .NET Core
 
Introducao ao GraphQL
Introducao ao GraphQLIntroducao ao GraphQL
Introducao ao GraphQL
 

Semelhante a Decoupled Drupal com GraphQL e React

Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Max Claus Nunes
 
Introdução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIsIntrodução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIsFernando Henriques
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?Wender Machado
 
Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Cláudio Leopoldino
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...tdc-globalcode
 
Rails API com GraphQL
Rails API com GraphQLRails API com GraphQL
Rails API com GraphQLSergio Lima
 
Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Acquia
 
GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017Marcos Brizeno
 
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Fernando Henriques
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
Node.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo realNode.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo realDiogo Cabral da Silva
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloIsmael
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 

Semelhante a Decoupled Drupal com GraphQL e React (20)

Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
Ferramentas e bibliotecas que você deveria estar utilizando - Desenvolvimento...
 
Introdução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIsIntrodução ao GraphQL - Uma nova forma de criar APIs
Introdução ao GraphQL - Uma nova forma de criar APIs
 
GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?GraphQL - aposta ou retrocesso?
GraphQL - aposta ou retrocesso?
 
Curso de Grails
Curso de GrailsCurso de Grails
Curso de Grails
 
Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013Postgresql 50 Sabores - PgDay Ceará 2013
Postgresql 50 Sabores - PgDay Ceará 2013
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
TDC2018SP | Trilha Ruby - Uma Aplicação Ruby On Rails Integrada com GraphQL, ...
 
Rails API com GraphQL
Rails API com GraphQLRails API com GraphQL
Rails API com GraphQL
 
Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8
 
GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017GraphQL ou APIs RESTful - DevDay 2017
GraphQL ou APIs RESTful - DevDay 2017
 
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
Introdução ao GraphQL - Uma nova forma de criar APIs (Ruby)
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
Node.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo realNode.js - Programação assíncrona e de tempo real
Node.js - Programação assíncrona e de tempo real
 
Migracao gae-openshift
Migracao gae-openshiftMigracao gae-openshift
Migracao gae-openshift
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
 
Spring boot
Spring bootSpring boot
Spring boot
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 

Decoupled Drupal com GraphQL e React