Open4
キャッシュ
![kou](https://res.cloudinary.com/zenn/image/fetch/s--IFWa507q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/8b4ffbcee8.jpeg)
APIのキャッシュを考えた際に気をつけるべき観点。
そもそもAPIのキャッシュとは、APIのレスポンスはインメモリ(?)にJSONの形で保存される(キャッシュ)ようにして、次回以降のアクセスをそのインメモリに保存されているところから返すようにするということ(HTTPヘッダーのCache-Controlヘッダのような標準規格とは違うだろうから、どうやって保存期間などを決めて保持しているのかはもっと調べてみる必要がある)。
・観点:ユーザー固有の情報を返すようなAPIではないか(誰でも同じような値が返るAPIであるか)
![kou](https://res.cloudinary.com/zenn/image/fetch/s--IFWa507q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/8b4ffbcee8.jpeg)
・HTTPヘッダー(Cache-Controlヘッダ)を用いたキャッシュ
・APIレスポンスのキャッシュ
![kou](https://res.cloudinary.com/zenn/image/fetch/s--IFWa507q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/8b4ffbcee8.jpeg)
Next.jsのSSRでのキャッシュ設定(Pages Router)
![kou](https://res.cloudinary.com/zenn/image/fetch/s--IFWa507q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/8b4ffbcee8.jpeg)
キャッシュは、「データを一次保存しておく仕組み」ぐらいの概念として捉えておくのがいいな。
それがブラウザキャッシュとして使用されたり、APIのレスポンスキャッシュとして使用されたり(Redisのようなインメモリキャッシュ(?))、データベースのクエリのキャッシュとして使われたりと、その具体的な用途が多岐にわたる。