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
graphql in laravel(lighthouse-php)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
qazz92
February 21, 2020
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
graphql in laravel(lighthouse-php)
Graphql in laravel
by Comento
qazz92
February 21, 2020
Other Decks in Programming
See All in Programming
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Jetpack Compose Mechanisms
skydoves
3
820
すこし踏み込む CancellationToken
htkym
2
1.7k
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
気持ちぃ〜角丸 Squircle
ryu1013
0
310
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
190
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
contenteditable と日本語入力に向き合う
colorful12
0
200
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
430
Visualization
eitanlees
153
17k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Building the Perfect Custom Keyboard
takai
2
910
A designer walks into a library…
pauljervisheath
211
25k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Six Lessons from altMBA
skipperchong
29
4.5k
Crafting Experiences
bethany
1
380
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
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!