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
ゆうきゃん
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
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2.3k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
160
すこし踏み込む CancellationToken
htkym
2
1.7k
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
160
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
180
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
280
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
16k
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
360
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Building Applications with DynamoDB
mza
96
7.2k
The Limits of Empathy - UXLibs8
cassininazir
2
710
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
A Modern Web Designer's Workflow
chriscoyier
699
190k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
Leo the Paperboy
mayatellez
10
2.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
740
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
A better future with KSS
kneath
240
18k
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υΩϡϝϯτͷੜ͕ศར •
ΫϥΠΞϯτͱͷΓऔΓ͕εϜʔζ