レスポンスキャッシュ

公開GraphQL APIは、解決済みのレスポンスを既定でキャッシュします。レコードが書き込まれると、それを参照していたキャッシュ済みのレスポンスは破棄されます。

既定でオン、60秒間

レコードを保持するすべてのモデルは60秒間キャッシュされます。その有効期間内に同じクエリを繰り返すと、再解決せずに保存済みのレスポンスが返ります。通常のモデルでは、同じクエリを送った呼び出し元の間で1つのエントリーを共有します。レコードに所有者があるモデルは、所有者ごとにキャッシュされます。

書き込み後の無効化

レコードの作成、更新、削除、公開、非公開を行うと、そのレコードを参照していたキャッシュ済みのレスポンスがすべて破棄されます。リストのレスポンスは、リスト内のどのレコードが編集されても破棄され、無関係なモデルには影響しません。無効化は書き込みのコミット後に実行されるため、数ミリ秒の間は前のレスポンスが返ることがあります。無効化が失われた場合は有効期間が最後の砦になり、キャッシュストアに到達できなくても書き込みはコミットされ、次の読み取りは通常どおり解決されます。

調整とオプトアウト

有効期間とスコープはモデルごとに、コンソールか、設定ファイルのcacheControlで設定し、モデルはキャッシュを完全に無効にすることもできます。個々のリクエストは、no-cacheヘッダーで新しい読み取りを強制できます。ミューテーションと下書きの読み取りはキャッシュされません。

自分の書き込みを読む

ミューテーションのレスポンスにはX-Foir-Write-Tokenヘッダーが付きます。次の読み取りでこれを送ると、サーバーはその書き込み以降に作られたエントリーだけをキャッシュから返します。

手動でのパージ

書き込み経路から見えない変更には、foir cache purgeで1つのレコード、1つのモデル、またはすべてをクリアできます。別のシステムでコンテンツが変わった単一のレコードには、リフレッシュのミューテーションを使えます。

詳細を読む

キャッシングガイドでは、キャッシュのスコープ、モデルごとの設定、リクエストヘッダー、CDN向けの共有エンドポイントを扱っています。