データ変更情報を受け取る
subscription
で出来ること
次世代データAPIのGraphQLとJavaScript実装のApollo 勉強会
2017-4-22
福井眞吾
❖ 福井 眞吾(ふくい しんご) @SilkAndTiki
❖ コンピュータ&通信機器メーカー勤務
❖ 昨年、役職定年になり、週休3日制を選択
毎週、金・土・日が休日
❖ IoTを勉強し始めました
❖ ギークオフィス恵比寿メンバー
「すごーい たーのしー」の次へ
query データを取得できる
mutation データを変更できる
よし、アプリ作るぞ!
query データを取得できる
mutation データを変更できる
よし、アプリ作るぞ!
graphQL
Server
graphQL
Client
graphQL
Client
太郎
?花子
mutation
graphQL
Server
graphQL
Client
変化
ここの仕組み
live queries
subscriptions
?他にもあるらしい
Live queries
queryで取得したデータに変更があったら通知してもらえる
live directive
更新される
あまり実装が進んでいないかも?
更新情報
Subscriptions
https://github.com/facebook/graphql/pull/267
http://dev.apollodata.com/react/subscriptions.html
https://dev-blog.apollodata.com/how-to-use-subscriptions-in-graphiql-1d6ab8dbd74b
https://www.graph.cool/blog/2017-02-28-introducing-graphql-subscriptions-in4ohtae4e/
Graphcoolでの
Subscriptions
https://github.com/graphcool-examples/react-apollo-instagram-subscriptions-example
どの変化が起こったか
変化後のデータ
CREATED
UPDATED
DELETED
subscription宣言
callback関数
subscribeToMore関数
変化前のデータ
条件の指定
CREATED
UPDATED
DELETED
新規に作成されたPostで
descriptionが”cat”なら通知
参考: graphcoolサーバでは、Strig型の
descriptionに対して下記の条件が
使えるようである
graphcoolでのデモ
graphQL
Server
graphQL
Client
graphcoolapollo + react+browser
graphcool console
Post
受信したデータsubscription定義
Server側の実装
挙動
ネットワークコネクションが切れた時
Server側の負荷

GraphQLのsubscriptionで出来ること