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
graphql in laravel(lighthouse-php)
Search
qazz92
February 21, 2020
Programming
0
120
graphql in laravel(lighthouse-php)
Graphql in laravel
by Comento
qazz92
February 21, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
680
Milestoner
bkuhlmann
1
410
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
180
2 週間で Twitter Bot を作ってみた
contour_gara
0
770
Snowflakeで眠ったデータを起こそう!
estie
0
150
Ruby Pattern Matching
bkuhlmann
0
930
Ruby Function Composition
bkuhlmann
1
340
Elm 0.19.0 Changes
bkuhlmann
0
510
Deep Dive into React Stream/Serialize
mugi_uno
3
700
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
500
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
400
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
201
23k
The Mythical Team-Month
searls
217
42k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
What's new in Ruby 2.0
geeforr
337
31k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
39
2.5k
Visualization
eitanlees
137
14k
GitHub's CSS Performance
jonrohan
1025
450k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Transcript
ݭష - ۾ With Laravel
RESTful API ?
RESTful API Method Route Action GET /post Ӗ ݾ۾ ੍ӝ
GET /post/:id ౠ Ӗ ੍ӝ POST /post Ӗ PUT/PATCH /post/:id Ӗ DELETE /post/:id Ӗ ઁ
RESTful API
ೞ݅…അपীࢲח… RESTful API Ex) Ӗਸ ઁೞݶ ನੋܳ غج۰Ҋ रযਃ! Ѥ
put ੋоਃ / delete ੋоਃ?
RESTful API
RESTful API GET /post/:id GET /comment/:postId GET /like/:postId
RESTful API GET /postAndCommentsAndLikes/:id
RESTful API Ӓؘ۠..
RESTful API ݽ߄ੌীࢲ ܲ Ѧ ୶оਵ۽ ࠁৈঠ ೠѢա, ࡐঠ ೠݶ?
=> /postAndCommentsAndLikes/:id?platform=mobile э api ܳ ܲ Ҕীࢲ ࢎਊ ೧ঠ ೞחؘ ӂೠ ୶оغযঠ ೠݶ? э api ܳ ܲ Ҕীࢲ ࢎਊ ೧ঠ ҙ҅о ୶о غঠ ೠݶ? …
RESTful API front-end ‘ apiীࢲ ݭష ࠁө ࣁਃ.’ back-end GET
/edu/camp/:id?mentor=1 ӝദ ‘ই! ݽ߄ੌীࢲח ࣗܳ ࡐࣁਃ’ front-end back-end ‘….’ front-end ٘ ࣻ back-end GET /edu/camp/:id?mentor=1&location=0 front-end ٘ ࣻ back-end ޙࢲ ١ সؘ back-end front-end ழޭפா࣌ ࠺ਊ ֫
RESTful API
None
GraphQL ױ ೠ ѐ end-point ೧ ௪ܻ झಖ(Schema)ী ٮۄ, ۄо
db ഐ!
front-end ‘ apiীࢲ ݭష ࠁ?’ front-end { camp(id: 214) {
mentor { name company } title back_img } } front-end ٘ ࣻ ࢲߡীࢲח ௪ܻ झಖ݅ ઓ! ৻ࠗ झಖա ޙࢲী ઓ X ழޭפா࣌ ࠺ਊ хࣗ GraphQL
GraphQL - Basic Query Mutation read data write data Type
model type user { id: ID! email: String! pw: String! } query { user(id: 1) { id email } } mutation { creaetUser ( email: "
[email protected]
" pw: “test” ) { id } }
GraphQL ଵ જؘ…Laravel ীࢲ যڌѱ ॳ…?
GraphQL Lighthouse-php https://lighthouse-php.com/
GraphQL Lighthouse-php ৵? ࠁా apollo! but ࢲߡ ҙܻ ӈଳ ?
eloquent ORM! ױ? ࠂೠ ௪ܻܳ ࢎਊೞ۰ݶ ѾҴ schema ৻ স ਃ
GraphQL Lighthouse-php with EloquentORM Example 1. Type type User
{ id: ID! email: String! type: Int! } Eloquent ORM ݽ؛җ ڙэ ࢿ
GraphQL Lighthouse-php with EloquentORM 2. Read type Query { user(id:
ID! @eq) : User! @find } 2-1. ױੌ ઑഥ => select * from user where id = :id limit 1 Example
GraphQL Lighthouse-php with EloquentORM type Query { user(id: ID! @eq)
: User! @find } ઑѤਸ ೲਊೡ ஸۢҗ ఋੑ where ‘=’ ߈ജ ఋੑ ->first()
GraphQL Lighthouse-php with EloquentORM 2. Read type Query { user(type:
Int! @eq) : [User!]! @all } 2-2. ܻझ ઑഥ => select * from user where type = :type Example
GraphQL Lighthouse-php with EloquentORM ߈ജ ఋੑ ( ߓৌ )
type Query { user(type: Int! @eq) : [User!]! @all } ->get() ઑѤਸ ೲਊೡ ஸۢҗ ఋੑ where ‘=’
GraphQL Lighthouse-php with EloquentORM 2. Read type Query { user(type:
Int! @eq) : [User!]! @pagination } 2-2. ܻझ ઑഥ (ಕ֎࣌) => select * from user where type = :type offset :offset limit :limit Example
GraphQL Lighthouse-php with EloquentORM 3. Middleware type Query { user(type:
Int! @eq) : [User!]! @pagination @middleware(checks: ["auth:api"]) } Example
GraphQL Lighthouse-php with EloquentORM 4. Muatation type Muatation { createUser(
email: String! pw: String! ) : User! @create } @create, @update, @delete, @upsert(updateOrCreate) Example
GraphQL Lighthouse-php with EloquentORM 5. Eloquent Relationships Example type Post
{ id: ID! email: String! type: Int! Author: User! @belongsTo(relation: “user”) } class User extends Model { …… public function user() { return $this->belongsTo(User::class) } } => Model ҙ҅৬ ܴਸ ڙэ যષ @hasOne, @hasMany, @belongsToMany, @belongsTo
GraphQL Lighthouse-php with EloquentORM query { post(no : 1) {
no title user { email } } } { "data": { "post": { "no": “1", "title": “test", "user": { “email": "5" } } } } =>
GraphQL Lighthouse-php with EloquentORM 6. Event Example type Muatation {
createUser( email: String! pw: String! ) : User! @create @event(dispatch: "App\\Events\ \CreateUserEvent") } Event direction ਸ ాೞৈ query / mutation റ ݫੌ ࣠ ١ ৈ۞ ೯زٜਸ ೡ ࣻ ѱ ࢸ ೡ ࣻ laravel events class
GraphQL Lighthouse-php with EloquentORM ৻ীب ৈ۞о directiveٜਸ ઑೞৈ ௪ܻ оמ
GraphQL ੋ۽झಖ࣌ RestAPI ীࢲח API ݺࣁࢲо ਃ GraphQL ੋ۽झಖ࣌ਵ۽
೧Ѿ
GraphQL नӏ दझమী ਊ Ѿҗ ੌ যٚ!
GraphQL नӏ दझమী ਊ Ѿҗ ਗې flow controller / service
/ repository => route ١۾ => response ҳઑ ҕਬ(ޙࢲ) => ೖ٘ߔ => ޖೠ ߈ࠂ ՙীীীীু!
GraphQL नӏ दझమী ਊ Ѿҗ ߸҃ flow झః݃ ࢿ =>
! PROFIT!