API リクエストをキャッシュする
November 2, 2022
フロントエンドから、バックエンドなどの外部にリクエストを飛ばしてデータの取得や更新をする際に、以下のような考慮事項がありました。
- 万が一短時間に繰り返し実行された場合も1度だけリクエストを飛ばすようにする。
- 必要に応じてレスポンスの結果を一定時間キャッシュしておき、その間は外部と通信せずキャッシュから返すようにする。
ライブラリを使っていれば裏側で解決してくれている可能性もありますが、自前でも実装できるようになっておくと素敵ですね。
ということで以下、ただのリンク集になってしまいますが、参考になった記事を記録しておきます。
- API を 1 回だけ呼んであとは同じ結果を得たい場合、値ではなく Promise をキャッシュする - Qiita
- 一段上の Promise 活用テクニック | Promise で API を確実にキャッシュする - ICS MEDIA
JavaScript では非同期処理中の状態を Promise と呼びますが、考え方はどの言語でも同じですので、普遍的に役に立つはずです。
- Futures and promises - Wikipedia
Promise をキャッシュするという発想がなかったため目から鱗でした。