Speaker Deck
Speaker Deck Pro
Sign in
Sign up
for free
Amplify API (GraphQL) が簡単すぎて泣けてくる #jawsug_asa #jawsug
Kihara, Takuya
July 22, 2020
Technology
0
1k
Amplify API (GraphQL) が簡単すぎて泣けてくる #jawsug_asa #jawsug
https://jawsug-asa.connpass.com/event/180589/
#jawsug_asa #jawsug
AWS Amplify の API (GraphQL) の話。
Kihara, Takuya
July 22, 2020
Tweet
Share
More Decks by Kihara, Takuya
See All by Kihara, Takuya
tacck
0
26
tacck
0
28
tacck
0
40
tacck
0
60
tacck
1
410
tacck
1
83
tacck
1
120
tacck
1
100
tacck
1
68
Other Decks in Technology
See All in Technology
iqbocchi
0
520
kentaro
1
310
neo_analytics
0
890
ishiayaya
PRO
0
320
clustervr
0
160
unifa_dev
0
290
satotakeshi
0
160
nihonbuson
2
1.5k
takem001
0
850
hamadakoji
0
1.1k
am7cinnamon
2
2.6k
noir_neo
0
120
Featured
See All Featured
brianwarren
83
4.7k
aarron
258
36k
geeforr
332
29k
rocio
155
11k
philhawksworth
190
17k
smashingmag
283
47k
tenderlove
52
3.4k
jonyablonski
14
1.1k
swwweet
206
6.8k
keavy
106
14k
brad_frost
156
6.4k
pedronauck
652
110k
Transcript
גࣜձࣾϊʔεσΟςʔϧ ։ൃ%JWJTJPOٕज़ਪਐ(SPVQ ݪ +"846(ேձKBXTVH@BTB "NQMJGZ"1* (SBQI2- ͕ ؆୯͗ͯ͢ٽ͚ͯ͘Δ ݄
+"846(ேձKBXTVH@BTB ୭ 2 PHP Conference Hokkaido 2019 ໊લ ݪ
/ ɹɹ@tacck ॴଐ גࣜձࣾϊʔεσΟςʔϧ ։ൃDivision ٕज़ਪਐGroup / Leader ओ࠵ ΏΔWebษڧձ@ࡳຈ εϚʔτεϐʔΧʔͰ༡΅͏ձ@ࡳຈ ͖ͳ AWSαʔϏε Route 53 ͖ͳ ϑΟΪϡΞεέʔτͷٕ εϓϨουɾΠʔάϧ
+"846(ேձKBXTVH@BTB 3 "NQMJGZ"1* (SBQI2- ͕ ؆୯͗ͯ͢ٽ͚ͯ͘Δ
+"846(ேձKBXTVH@BTB "84"NQMJGZ 4 https://aws.amazon.com/jp/amplify/
+"846(ேձKBXTVH@BTB "84"NQMJGZ 5 https://aws.amazon.com/jp/amplify/ ৭ʑศརͳ͍ͭ͢͝
+"846(ேձKBXTVH@BTB 6 ࡞ྫ
+"846(ேձKBXTVH@BTB • ͜͜࠷ۙɺͳͳ࡞͍ͬͯ·͢ɻ FNPGVMM ϦϞʔτײڞ༗αʔϏε 7 ΞΫηεͯ͠Έ͍ͯͩ͘͞ʂʂʂ https://emofull.com/
+"846(ேձKBXTVH@BTB ࣾπʔϧ ϑϦʔΞυϨε࠲੮֬ೝ 8 https://www.northdetail.co.jp/blog/870/
+"846(ேձKBXTVH@BTB 9
+"846(ேձKBXTVH@BTB 10 "1* (SBQI2-
+"846(ேձKBXTVH@BTB • AWS AppSync ΛɺϑϩϯτΤϯυ͔Β؆୯ʹ͑Δɻ (ඪ४ͩͱɺ DynamoDB ΛετϨʔδͱͯ͠͏ɻ) • Amplify
CLI Λ͏ͱɺ͍ΘΏΔ CRUD ͷΫΤϦΛ ੜͯ͘͠ΕΔɻ • ݺͼग़͠ํ͕Θ͔Εɺ͙͢ʹ͑Δɻ "1* (SBQI2- 11
+"846(ேձKBXTVH@BTB 12 GraphQL Schema ϑΝΠϧ amplify/backend/api/asuuyt/schema.graphql ~~~ type Todo @model
{ id: ID! name: String! description: String }
+"846(ேձKBXTVH@BTB 13 import { API, graphqlOperation } from 'aws-amplify' import
{ getTodo, listTodos } from ‘@/graphql/queries’ ~~~ // queries const todo = await API.graphql( graphqlOperation(getTodo, { id: this.todoId }), ).catch(err => console.error('getTodo', err)) const todos = await API.graphql( graphqlOperation(listTodos, {}), ).catch(err => console.error('listTodos', err))
+"846(ேձKBXTVH@BTB 14 import { API, graphqlOperation } from 'aws-amplify' import
{ createTodo, updateTodo, deleteTodo } from '@/graphql/mutations' ~~~ // mutations const createdTodo = await API.graphql( graphqlOperation(createTodo, { input: { name: 'new todo', description: 'sample description' }, }), ).catch(err => console.error('createTodo', err)) const updatedTodo = await API.graphql( graphqlOperation(updateTodo, { input: { id: createdTodo.data.createTodo.id, name: 'update todo', description: 'update description', }}), ).catch(err => console.error('updateTodo', err)) const deletedTodo = await API.graphql( graphqlOperation(deleteTodo, { input: { id: createdTodo.data.createTodo.id }, }), ).catch(err => console.error('deleteTodo', err))
+"846(ேձKBXTVH@BTB 15 import { API, graphqlOperation } from 'aws-amplify' import
{ onCreateTodo, onUpdateTodo, onDeleteTodo } from '@/graphql/subscriptions' ~~~ // subscriptions const subscriptionCreateTodo = API.graphql( graphqlOperation(onCreateTodo), ).subscribe({ next: data => console.log(data) }) const subscriptionUpdateTodo = API.graphql( graphqlOperation(onUpdateTodo), ).subscribe({ next: data => console.log(data) }) const subscriptionDeleteTodo = API.graphql( graphqlOperation(onDeleteTodo), ).subscribe({ next: data => console.log(data) })
+"846(ேձKBXTVH@BTB 16 const todo = await API.graphql( graphqlOperation(getTodo, { id:
this.todoId }), ).catch(err => console.error('getTodo', err)) const createdTodo = await API.graphql( graphqlOperation(createTodo, { input: { name: 'new todo', description: 'sample description' }, }), ).catch(err => console.error('createTodo', err)) const subscriptionCreateTodo = API.graphql( graphqlOperation(onCreateTodo), ).subscribe({ next: data => console.log(data) })
+"846(ேձKBXTVH@BTB 17 const todo = await API.graphql( graphqlOperation(getTodo, { id:
this.todoId }), ).catch(err => console.error('getTodo', err)) const createdTodo = await API.graphql( graphqlOperation(createTodo, { input: { name: 'new todo', description: 'sample description' }, }), ).catch(err => console.error('createTodo', err)) const subscriptionCreateTodo = API.graphql( graphqlOperation(onCreateTodo), ).subscribe({ next: data => console.log(data) })
+"846(ேձKBXTVH@BTB 18
+"846(ேձKBXTVH@BTB 19 ·ͱΊ
+"846(ேձKBXTVH@BTB • Amplify API (GraphQL) ͍࢝ΊΔͷ؆୯͗ͯ͢ٽ͚ͯ͘Δɻ • ಛʹϦΞϧλΠϜ௨(subscriptions)͕ɺ ؆୯͗ͯ͢େ߸ٽɻ
·ͱΊ 20
+"846(ேձKBXTVH@BTB • Amplify API (GraphQL) ͍࢝ΊΔͷ؆୯͗ͯ͢ٽ͚ͯ͘Δɻ • ಛʹϦΞϧλΠϜ௨(subscriptions)͕ɺ ؆୯͗ͯ͢େ߸ٽɻ
• ηΩϡϦςΟΛߴΊΑ͏ͱ͢Δͱɺ Α͘Θ͔Βͳ͘ͳ͖ͬͯͯٽ͚ͯ͘Δɻ ·ͱΊ 21
+"846(ேձKBXTVH@BTB • ϒϩάͰӶҙࣥචத ͓·͚ 22 https://www.northdetail.co.jp/blog/905/
+"846(ேձKBXTVH@BTB 23 FOE