Closed5
code-first な NestJS でキャッシュディレクティブを設定する
twitterで一人で悩んで解決したので転載↓
うーん、NestJSのgraphqlでcode-firstでもcacheControlディレクティブ使えるようになったっぽいけど動いてないっぽい。。。
解決した!!!
maxAgeはネストした下位フィールドによって上書きされるけど、デフォルトのmaxAgeが0だから、下位に何も設定しない場合は上位も0になり、キャッシュ機能が動いてないように見えると。
だから上位で一括設定したい場合は下位に inheritMaxAge: true
をつける。
↑DiscordのNestJSコミュ漁ったらでてきた。
有能。
Directives applied through the @Directive() decorator will not be reflected in the generated schema definition file.
ちなみに code-first でカスタムディレクティブ書いても、生成された schema には表示されない。
ただしサーバー側の実装で機能としては有効になる。
GraphQLサーバーの中身はApolloなので、Apollo側で解釈してレスポンスヘッダーにキャッシュコントロールがつくようになる。
ちなみにサーバーサイドキャッシュを有効にするには apollo-server-plugin-response-cacheプラグインの導入が必要です。
このスクラップは2022/06/04にクローズされました