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
3Dシーンの圧縮
fadis
1
760
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.5k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
240
Agentic UI
manfredsteyer
PRO
0
150
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
120
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
230
A2UI という光を覗いてみる
satohjohn
1
130
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
190
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
net-httpのHTTP/2対応について
naruse
0
480
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
820
Code Review Best Practice
trishagee
74
20k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
420
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
HDC tutorial
michielstock
2
710
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
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