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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ゆうきゃん
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
100
開発体験を爆上げする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
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
380
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
310
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
280
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
220
Workers Cache を知る
syumai
0
310
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
AWSに止められる覚悟してますか?
morizo_1984
2
480
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
4.8k
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
190
Agents on Rails - Rails at Scale 2026
irinanazarova
0
290
Heart of Swift Concurrency
koher
0
1.1k
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
370
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
250
The SEO Collaboration Effect
kristinabergwall1
1
580
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Code Review Best Practice
trishagee
74
20k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
540
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Curious Case for Waylosing
cassininazir
1
540
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
750
A Soul's Torment
seathinner
8
3.7k
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υΩϡϝϯτͷੜ͕ศར •
ΫϥΠΞϯτͱͷΓऔΓ͕εϜʔζ