RESTのN回呼び出し vs GraphQLの1回呼び出し
リソース中心に設計されたREST APIは、1つの画面を描くためにユーザー情報、投稿、コメント、いいね数などをそれぞれ別のエンドポイントから取得しなければならないことがよくあります。不要なフィールドまで一緒に返されるOver-fetching問題も重なると、実際に画面で使うデータよりはるかに多い量がネットワークを通じて転送されます。
このツールは同じ画面を描くためのREST呼び出し数と呼び出し当たり平均応答サイズを掛けてREST総転送量を求め、これを同じデータを一度に取得するGraphQL単一クエリの応答サイズと比較して削減率を表示します。
ただしGraphQLが常に有利なわけではありません。クエリが複雑になるほどサーバーのリゾルバ処理コストが増え、N+1問題のような別の性能課題が生じることもあります。このツールは純粋なデータ転送量の観点での比較なので、実際の導入判断はサーバー処理コストも併せて検討することをおすすめします。
よくある質問
RESTはリソース単位でエンドポイントが分かれているため、1画面に複数種類のデータが必要な場合、各リソースに個別にリクエストを送る必要がある場合が多いです。
必要なフィールドだけを選んで取得できるため過剰取得(Over-fetching)を減らせますが、クエリが複雑になるとサーバー側のリゾルバ処理コストが増えるため常に有利とは限りません。
REST APIは応答形式が固定されているため、画面に不要なフィールドまで一緒に返されることが多く、これが不要なデータ転送につながります。