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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
qazz92
February 21, 2020
Programming
0
200
graphql in laravel(lighthouse-php)
Graphql in laravel
by Comento
qazz92
February 21, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
CSC307 Lecture 03
javiergs
PRO
1
490
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
380
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
130
今から始めるClaude Code超入門
448jp
8
8.8k
CSC307 Lecture 01
javiergs
PRO
0
690
AgentCoreとHuman in the Loop
har1101
5
240
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
290
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
120
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
Designing for Performance
lara
610
70k
Making Projects Easy
brettharned
120
6.6k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
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!