Caching
標準的なHTTPキャッシングを使用して、クライアント側またはクライアントとサーバー間の中間ステージ(CDNなど)でGraphQLレスポンスをキャッシュします。

Click to watch tutorial video - 05:30
HTTPキャッシングをGraphQLレスポンスに適用し、コストのかかる操作の結果をキャッシュすることで、アプリケーションを高速化します。
Cache Control
HTTPキャッシングを使用して、GraphQLクエリのレスポンスにCache-Controlヘッダーとmax-age値を送信し、レスポンスをキャッシュする期間を指定します。
Cache Control拡張機能はCache Controlリストを提供し、フィールドとディレクティブにカスタムのmax-age値を定義できます。
レスポンスのmax-age値は、クエリに含まれるフィールドとディレクティブをもとに、GraphQLエンジンが自動的に計算します。

フィールド解決キャッシング
GraphQLスキーマに@cacheディレクティブを追加することで、フィールドの結果を指定した時間ディスクに保存します。その時間内に同じフィールドを実行すると、キャッシュされた値が返されます。
このディレクティブは、外部APIとのやり取りなどコストのかかる操作を実行する際にパフォーマンスを向上させることができます。レスポンスをキャッシュして再利用できるためです。
query {
posts {
id
title
@strTranslate(from: "en", to: "es")
@cache(time: 10)
}
}