Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Implementing GraphQL with Laravel and Vue.js
Search
Alefe Souza
August 27, 2019
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Implementing GraphQL with Laravel and Vue.js
https://github.com/alefesouza/talk-laravel-vue-graphql
Alefe Souza
August 27, 2019
More Decks by Alefe Souza
See All by Alefe Souza
NativeScript: Native Apps with Angular
alefesouza
0
490
Implementing GraphQL with PHP - PHP Community Summit
alefesouza
0
320
React: Zero to Hero
alefesouza
2
520
Implementing GraphQL with PHP
alefesouza
0
600
Node.js Chatbots with Bot Framework
alefesouza
0
420
GraphQL: A new way to write APIs
alefesouza
0
450
Firebase as back-end
alefesouza
0
490
GitLab: A tool for the entire DevOps lifecycle.pdf
alefesouza
0
710
Web Components with Vanilla.js
alefesouza
0
680
Other Decks in Programming
See All in Programming
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
110
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.5k
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
750
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
240
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
280
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.5k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
5.3k
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
120
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
スマートグラスで並列バイブコーディング
hyshu
0
130
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
The Limits of Empathy - UXLibs8
cassininazir
1
360
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Writing Fast Ruby
sferik
630
63k
Google's AI Overviews - The New Search
badams
0
1k
A Tale of Four Properties
chriscoyier
163
24k
The Spectacular Lies of Maps
axbom
PRO
1
800
Six Lessons from altMBA
skipperchong
29
4.3k
Transcript
Implementando GraphQL com Laravel e Vue.js
@alefesouza https://as.dev Alefe Souza Full Stack Developer @alefesouza Programador PHP
desde os 17 anos, instrutor de desenvolvimento de software, formado em análise e desenvolvimento de sistemas, Microsoft Specialist em tecnologias web.
GraphQL? Uma especificação de linguagem de consulta de APIs, desenvolvida
pelo Facebook. @alefesouza https://as.dev
@alefesouza https://as.dev Príncipios • Tipos • Queries • Mutations
Tipos Permitem especificar objetos de entrada e saída, impedindo a
requisição caso ocorra algo fora do padrão. @alefesouza https://as.dev
Queries Utilizadas para consultas no endpoint único, também é muito
fácil de solicitar apenas o que os campos necessários. @alefesouza https://as.dev
Mutations Utilizadas para realizar qualquer tipo de alteração nos dados,
equivalente ao POST, PUT, PATCH, DELETE, identificados pelo nome. @alefesouza https://as.dev
Onde funciona? @alefesouza https://as.dev
Onde funciona? @alefesouza https://as.dev
Implementação com Laravel @alefesouza https://as.dev $ composer install rebing/graphql-laravel $
php artisan vendor:publish --provider="Rebing\GraphQL\GraphQLServiceProvider"
Implementação no Vue.js @alefesouza https://as.dev $ npm install --save vue-apollo
graphql apollo-boost
Implementação no Vue.js @alefesouza https://as.dev import VueApollo from 'vue-apollo'; import
ApolloClient from 'apollo-boost'; import App from './App.vue'; Vue.use(VueApollo); const apolloClient = new ApolloClient(); const apolloProvider = new VueApollo({ defaultClient: apolloClient, }); new Vue({ el: '#app', apolloProvider, render: h => h(App), });
@alefesouza https://as.dev <ApolloQuery :query="require('./../gralphql/queries/fetchUsers.gql')" > <template v-slot="{ result: { loading,
error, data } }"> <!-- Loading --> <div v-if="loading" class="loading apollo">Carregando...</div> <!-- Error --> <div v-else-if="error" class="error apollo">Houve um erro</div> <!-- Result --> <div v-else-if="data" class="result apollo"> <ul> <li v-for="user in data.users" :key="user.id"> <b>Nome:</b> {{ user.name }}<br> <b>E-mail:</b> {{ user.email }}<br> <b>Empresa:</b> {{ user.company.name }} </li> </ul> </div> </template> </ApolloQuery>
@alefesouza https://as.dev <ApolloQuery :query="require('./../gralphql/queries/fetchUser.gql')" :variables="{ id: userId }" > <template
v-slot="{ result: { loading, error, data } }"> <!-- Loading --> <div v-if="loading" class="loading apollo">Carregando...</div> <!-- Error --> <div v-else-if="error" class="error apollo">Houve um erro</div> <!-- Result --> <div v-else-if="data" class="result apollo"> <b>Nome:</b> {{ data.user.name }}<br> <b>E-mail:</b> {{ data.user.email }}<br> <b>Empresa:</b> {{ data.user.company.name }} </div> </template> </ApolloQuery>
@alefesouza https://as.dev <ApolloMutation :mutation="require('../gralphql/mutations/addUser.gql')" :variables="{ input }" @done="onDone" > <template
v-slot="{ mutate, loading, error }"> <div> <div> <div>Nome:</div> <input type="text" v-model="input.name"> </div> <div> <div>E-mail:</div> <input type="text" v-model="input.email"> </div> <div> <div>ID da empresa:</div> <input type="number" v-model="input.company_id"> </div> </div> <button :disabled="loading" @click="mutate()">Salvar</button> <p v-if="error">Ocorreu um erro: {{ error }}</p> </template> </ApolloMutation>
Live Code! http://bit.ly/talk-laravel-vue-graphql @alefesouza https://as.dev
Obrigado!! @alefesouza https://as.dev http://bit.ly/talk-laravel-vue-graphql