Open6

GraphQL

yuitayuita

前提
APIのクエリ言語

RESTとの違い
RESTはリクエストがどのエンドポイントに投げられたかによってレスポンスを判断する。
GraphQLはリクエストをGraphQLに集約する形になるので、単一のエンドポイントから全データにアクセスできる。

RESTはレスポンスが固定されているのでオーバーフェッチングが発生する。
GraphQLはレスポンスを指定してリクエストが投げられるので欲しいデータだけを無駄なく取得できる。

GraphQLはスキーマに型指定ができる。

GraphQLではスキーまで定義した型に対してリゾルバーを使って実際の操作や値を定義する。

yuitayuita

GraphQLは Graph構造のデータから任意の形のデータを取り出すためのクエリ言語。
GraphQLスキーマはデータの型とデータ間の繋がりによって定義される。
静的型付けで実行前にクエリがスキーマに対して正しいかを検証できる。
クエリからどういう構造 + 型のデータが得られるか分かるので、
フロントエンド側でデータを正しく扱っているかを静的に検査できる。

yuitayuita

クエリと全く同じ形状のレスポンスが返される。
要は常に期待通りのものが返される。