Slide 1

Slide 1 text

スポーツ×GraphQL とりあえずネタがなかった

Slide 2

Slide 2 text

自己紹介 ● 名前 ○ ufoo68 ● やってること ○ AWSを使った開発 ○ スポーツIoTLTの主催 ● 最近とった資格 ○ ソリューションアーキテクトアソシエイト ○ Alexaスキルビルダー

Slide 3

Slide 3 text

宣伝

Slide 4

Slide 4 text

ときは二日前

Slide 5

Slide 5 text

最初に 毎度のことながら ネタがなかった

Slide 6

Slide 6 text

最初に考えたこと MiBand4を買ったのでハックしてみよう

Slide 7

Slide 7 text

しかし 前回のスポーツIoTLTとIoTLT60回目にて 流石に同じネタをやるのは面白くない。。。

Slide 8

Slide 8 text

次に考えたこと 最近勉強してるGraphQLでスポーツネタできないかな

Slide 9

Slide 9 text

探したらなんかあった

Slide 10

Slide 10 text

順を追って説明

Slide 11

Slide 11 text

TheSportsDB スポーツ選手・チーム・イベントに関するデータを取得できるAPI

Slide 12

Slide 12 text

やろうと思ったこと 公式のGraphQL wrapperを使ってSportsDBのデータを取得してみる

Slide 13

Slide 13 text

ここからGraphQLについての話

Slide 14

Slide 14 text

まずGraphQLとは? ● サーバとクライアント間の通信のための使用言語 ● FaceBookの研究チームが提唱 ● REST APIに変わる新たな技術(?)

Slide 15

Slide 15 text

誤解してたこと 既存のAPIサーバとクライアント間の通信の仕様が変わるのか? クライアント API サーバ クエリを投げる クエリを解釈 レスポンスを返す

Slide 16

Slide 16 text

本当は違った GraphQLというものが両者を仲介するようになる クライアント API サーバ クエリを投げる クエリを解釈してリクエストを投げる GraphQLサーバ リクエストを受け取る

Slide 17

Slide 17 text

実際にやってみた

Slide 18

Slide 18 text

ローカルでGraphQLサーバを実行

Slide 19

Slide 19 text

Postmanでクエリを実行

Slide 20

Slide 20 text

スキーマのタイプを調べるクエリ query { __schema { types { name description } } } 試しにこのPlayerってやつを とってみよう

Slide 21

Slide 21 text

Playerでとれる情報を調べる query { __type(name:"Player") { name fields { name } } }

Slide 22

Slide 22 text

適当な選手の情報を取得 query { player(id:34145937) { name sportType nationality } }

Slide 23

Slide 23 text

以上

Slide 24

Slide 24 text

まとめ ● MiBand4の話は前回のスポーツIoTLTと本家IoTLT vol.60のn0bisukeさんの資 料を見よう ● スポーツIoTLTのIoTはInternet or Thingsなのでこんな話もしていい ● GraphQLはREST APIとはまた立ち位置が違う ● スポーツ関係ない話でごめんなさい