Caching
GraphQL + Cache の課題
GraphQL リクエストが多様すぎる
クエリ全体のキャッシュが有効でなさそう?
GraphQL リクエストが大きすぎて GET にのせられない
REST なら、GET でデータを取得し POST で更新をするので、GET のみキャッシュすればよかった
GraphQL は大抵 POST を利用する (GET だとサイズ制限があって乗らない)
キャッシュヒントを設定するのが難しい
キャッシュヒントとは、Cache-Control ヘッダーのこと
REST API は、特定のエンドポイントとリソースが紐づいているので、Cache-Control ヘッダを付与するのが簡単
一方、GraphQL では、1つのエンドポイントが複数のリソースを返すし、どのリソースを返すかはクライアントに委ねられる