Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Laravel+GraphQL 良かったこと 困ったこと 悲しかったこと
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ゆうきゃん
May 22, 2019
Programming
830
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Laravel+GraphQL 良かったこと 困ったこと 悲しかったこと
ゆうきゃん
May 22, 2019
More Decks by ゆうきゃん
See All by ゆうきゃん
Svelte Todo アプリハンズオン資料
ucan_lab
0
110
開発体験を爆上げするLaravel Dacapo マイグレーションサポートツールのススメ
ucan_lab
0
1.7k
モテるコードの書き方
ucan_lab
0
280
momochanにも分かるPSR講座
ucan_lab
0
64
ターミナルtips
ucan_lab
0
110
ゆうきゃんどっかー のススメ In #TechCafe
ucan_lab
2
280
Laravel Dacapo 2019-09-06 YYPHP 99
ucan_lab
0
310
Laravel + Docker 環境構築ハンズオン
ucan_lab
2
520
バージョン管理ツールについて振り返り
ucan_lab
0
100
Other Decks in Programming
See All in Programming
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
JIS keyboard support in Omarchy
lef237
0
140
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
4k
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Jetpack Compose Mechanisms
skydoves
3
820
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
800
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
AWSに止められる覚悟してますか?
morizo_1984
2
540
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Test your architecture with Archunit
thirion
2
2.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Curious Case for Waylosing
cassininazir
1
570
Six Lessons from altMBA
skipperchong
29
4.5k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Optimising Largest Contentful Paint
csswizardry
37
4k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Transcript
Laravel+GraphQL ྑ͔ͬͨ͜ͱ ࠔͬͨ͜ͱ ൵͔ͬͨ͜͠ͱ 2019.05.22 Laravel/Vue.jsษڧձ#9 @ucan_lab (Ώ͏͖ΌΜ)
ࣗݾհ • Name: Ώ͏͖ΌΜ(@ucan_lab) • Company: גࣜձࣾROLO • Skill: PHPer(5)/Laravel/GraphQL/Docker(ษڧத)
• Favorite: λϐΦΧ/εϚϒϥSP • Twitter: https://twitter.com/ucan_lab • Qiita: https://qiita.com/ucan-lab • Laravelͷ։ൃڥΛDockerΛͬͯߏங͢Δ • Laravel PHP InsightsΛͬͯίʔυ࣭Λੳ͢Δ
GraphQLͬͯΔਓ!
GraphQLͬͯΔਓ
ࠓͷ͓
લஔ͖ • Vueͷ͋Γ·ͤΜ • αʔόʔαΠυଆͷࢹͷʹͳΓ·͢
ࠓͷ͓ • ൵͔ͬͨ͜͠ͱ • GraphQLͷ֓ཁ • LaravelͱGraphQL • GraphQLͷ༻ޠʹ͍ͭͯ •
ྑ͔ͬͨ͜ͱ • ࠔͬͨ͜ͱ • ·ͱΊ
൵͔ͬͨ͜͠ͱ
GraphQLͷϥΠϒϥϦ • folkloreinc/laravel-graphql (1788 star) • nuwave/lighthouse (927 star) •
rebing/graphql-laravel (661 star)
2018/9 ಋೖ࣌ͷ͓ • ελʔίϛοτ͕׆ൃͳͷɺ lighthouseϥΠϒϥϦͰ͕͢ಋೖ࣌200ε λʔ΄Ͳ͔͠ͳ͘ɺlaravel-graphqlΛબ • ͬͺαϙʔτ͞Εͳ͘ͳͬͨΒා͍ • ελʔଟ͍ͷ͕Ұ൪҆ఆͩΑͶ
None
αϙʔτ͞Εͳ͘ͳͬͨΒ ා͍
օ͞Μ nuwave/lighthouse Λ͍ͬͯͩ͘͞
GraphQLͷ֓ཁ
GraphQLͷ֓ཁ • Facebook͕։ൃ • 2015ʹొ • ڧྗͳܕγεςϜ • WebAPIʹ͍߹ΘͤΔͨΊͷΫΤϦݴޠ (SQLͷΑ͏ͳΠϝʔδ)
REST
GraphQL
LaravelͱGraphQL
LaravelΞʔΩςΫνϟ Client I/O Application Domain Data Source 3%# ,74 Route
Request Middleware Controller Model Repository Resource UseCase Response "1*
֤ϨΠϠʔͷׂ Input Application Domain Output Route Request Middleware Controller Model
Repository Resource UseCase Response 63-ͱίϯτϩʔϥͷϚοϐϯά ύϥϝʔλͷܗࣜόϦσʔγϣϯɺॏෳνΣοΫͷ%#ΞΫηε͠ͳ͍ ೝՄɺ$43'νΣοΫɺ$034ઃఆɺڞ௨ϩΪϯάॲཧɺڞ௨ྫ֎ॲཧ ϦΫΤετडɺϢʔεέʔεݺग़ɺϨεϙϯεฦ٫ɺϩδοΫهࡌ͠ͳ͍ ॏෳνΣοΫͷόϦσʔγϣϯɺϏδωεϩδοΫ࣮ɺτϥϯβΫγϣϯॲཧ ෳࡶͳ42-ͷΈཱͯɺඞཁʹԠͯ͡ΩϟογϯάॲཧɺϞσϧͷݺͼग़͠ &MPRVFOU03.ɺίʔυϚελ &OVN "1*ͷϦιʔε &MPRVFOUͱ+40/ϨεϙϯεͱͷτϥϯεϨʔγϣϯ "1*ͷ+40/ϨεϙϯεΛฦ٫
LaravelʴGraphQLͷϨΠϠʔͷׂ Input Application Domain Output Route Request Middleware Controller Model
Repository Resource UseCase Response 2VFSZ .VUBUJPOͷ໊લ͕ϧʔςΟϯάͱஔ͖ΘΔ 2VFSZ .VUBUJPOͷҾͰ5ZQFࢦఆɺ ϛυϧΣΞͦͷ··ར༻ ༻͠ͳ͍ɻ2VFSZ .VUBUJPOͷSFTPMWFS͔ΒϢʔεέʔεΛݺग़ ͜͜ʹϏδωεϩδοΫΛ࣮͢Δ ϦϙδτϦͦͷ··༻ Ϟσϧͦͷ··༻ ༻͠ͳ͍ɻΫϥΠΞϯτଆͰ5ZQF͔ΒඞཁͳϑΟʔϧυΛऔಘ "1*ͷϨεϙϯεΛฦ٫
LaravelΞʔΩςΫνϟ Client I/O Application Domain Data Source 3%# ,74 Route
Request Middleware Controller Model Repository Resource UseCase Response "1* (SBQI2-
GraphQLͷ༻ޠ
λΠϓ(Type) • GraphQLಠࣗͷܕ • λΠϓͲΜͳϑΟʔϧυΛ͔࣋ͭΛఆٛ • ΫΤϦʔɺϛϡʔςʔγϣϯͷҾฦΓ • ϑΟʔϧυ໊͕EloquentͷϓϩύςΟϦ Ϩʔγϣϯ໊ͱҰகͯ͠Ε͍͍ײ͡ʹऔಘ
ΫΤϦʔ(Query) • σʔλͷಡΈࠐΈͷΈ • RESTͰ͍͏GET • ཉ͍͠ϑΟʔϧυΛ͏ଆͰҙʹࢦఆ • ఆٛͨ͠ΫΤϦͱಉ͡ܗͰjson͕ฦͬͯ͘Δ
ΫΤϦʔྫ1
ΫΤϦʔྫ2
ΫΤϦʔྫ3
ϛϡʔςʔγϣϯ • σʔλͷॻ͖ࠐΈ • RESTͰ͍͏POST, PUT, DELETE • ฦΓʹGraphQLಠࣗͷܕΛઃఆͰ͖Δ
ϛϡʔςʔγϣϯྫ1
ྑ͔ͬͨ͜ͱ
ྑ͔ͬͨ͜ͱ • APIυΩϡϝϯτ͕ࣗಈੜ͞ΕΔ • ࣮ߦڥ(GraphQL Playground)͕༏ल • ϧʔςΟϯάઃܭ͕ෆཁ • Ϟσϧͱͷੑ(ϓϩύςΟɺϦϨʔγϣϯ)
• Laravel dump-server ͱҰॹʹ͏ͱ։ൃָ͕ • ॳΊͯͷਓεϜʔζʹೖΕͨ • ଞͷϓϩδΣΫτͰ͏ଆಉ͡ίʔυ͕͑Δ
GraphQL࣮ߦڥ • GraphiQL • PlayGround • Altair • GraphQL IDE
GraphQL PlayGround
ࠔͬͨ͜ͱ
ࠔͬͨ͜ͱ • ใ͕গͳ͘ɺϥΠϒϥϦίʔυΛ͏ʑ • ϥΠϒϥϦͷσόοά͕ਏ͍ • ΫΤϦʔɺϛϡʔςʔγϣϯͷڞ༗ͮ͠Β͍ (Postmanͷ༷ʹΠϯϙʔτɺΤΫεϙʔτ͍ͨ͠) • KeynoteͰ࡞ͬͨࢿྉͷΞοϓϩʔυํ๏
·ͱΊ
·ͱΊ • ϥΠϒϥϦ lighthouse Ұ • PlayGround͕ศར͚ͩͲڞ༗ػೳ͕ཉ͍͠ • APIυΩϡϝϯτͷੜ͕ศར •
ΫϥΠΞϯτͱͷΓऔΓ͕εϜʔζ