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
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
100
開発体験を爆上げするLaravel Dacapo マイグレーションサポートツールのススメ
ucan_lab
0
1.7k
モテるコードの書き方
ucan_lab
0
280
momochanにも分かるPSR講座
ucan_lab
0
62
ターミナル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
510
バージョン管理ツールについて振り返り
ucan_lab
0
98
Other Decks in Programming
See All in Programming
自分的「カンファレンスの楽しみ方」
syumai
0
160
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
340
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
180
Dockerfile CMD for Node.js
grazie1999
0
160
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
220
AIエージェント時代のコードレビューを設計する
nogu66
5
1.1k
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
Press start. Python's next generation.
willingc
PRO
3
300
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
560
業務時間外もAIに働いてもらう話
colorful12
3
9.5k
仕様駆動開発の消費期限
watany
20
9.2k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
24k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Done Done
chrislema
186
16k
A better future with KSS
kneath
240
18k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
910
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
490
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
400
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
850
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
180
Testing 201, or: Great Expectations
jmmastey
46
8.3k
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υΩϡϝϯτͷੜ͕ศར •
ΫϥΠΞϯτͱͷΓऔΓ͕εϜʔζ