>100 Views
January 18, 24
スライド概要
1/7 GraphQLについて
2/7 GraphQLとは ・APIと通信するための新しい規格(プロトコル) ・1つのエンドポイントにクエリをまとめて送るため、 リクエストの回数を減らすことができる ・必要なデータのみ操作できるため、 操作後の処理が楽になる ・後からクライアントサイドで必要なデータに 変更が生じても、容易に対応することができる
3/7 GraphQLの構成 GraphQLは二つの構成から成る ①.クエリ言語 クライアント側で用いられ、GraphQLサーバーに リクエストを送るため言語 ②.スキーマ言語 サーバ側で用いる言語で、この言語で記述した仕様に したがって扱われるデータの構造(スキーマ)が決まる (データの操作はリゾルバが行う)
4/7 クエリ言語について クエリは大きく3種類に分かれる。 これらをベースにリクエストをカスタマイズする クエリの効果 クエリの種 クエリの使い道 類 query GET データの取得 mutation POST/UPDADE/DELETE... Etc. データの更新 subscription Websocket イベント通知 データの取得 データの更新
5/7 スキーマ言語について GraphQL独自の記述方法でAPIの仕様を決める データ「Todo」の 型(スキーマ)を決める 「!」はnon-null(必須)を示す [ ]は配列を示す 他のスキーマを内包できる type Query/Mutation/subscriptionは root型と呼ばれ、それぞれのクエリの起点となる typeの他、enumやunion、inputなどを指定して 生成するレスポンスのスキーマを定義する
6/7 GraphQLを用いたデータ取得例 GraphQL独自の設定により、柔軟なデータの取得や更新を行うことができる リクエスト クライアント バックエンド レスポンス クライアント側のクエリ言語から リクエストを作成して送信する 受け取ったリクエストとスキーマ言語より レスポンスを作成して送信する JSON型データ
7/7 GraphQLを用いた開発 ・静的型付け言語との相性がよく、スキーマ言語から 型定義を自動で行ってくれるツールが充実している ・はじめに通信するデータの型を決めてしまい、 それをベースにサーバサイドとクライアントサイド 同時並行で開発しやすくできる(スキーマベース開発) ・エンドポイントが1つであり、1度のリクエストの大きさが ユーザーに依存するため、サーバ負荷対策が難しい