【要約】AIに勝手にAPIを叩かせたくないので、JSONファイルキャッシュを40行で作った [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者はAPI利用時に、IP BANのリスクやAIによる過剰なリクエストに直面する。
- ・API規約の遵守:リクエスト過多によるIP制限の回避。
- ・AIエージェント対策:Claude Code等の自動実行によるリクエスト爆発の抑制。
- ・運用の簡素化:Redis等の重厚な仕組みを導入するコストの回避。
// Approach
開発者は、Python標準ライブラリのみを用い、40行程度のモジュールを自作して解決した。
- ・ハッシュキー生成:
sort_keys=Trueで辞書をシリアライズし、SHA256ハッシュをファイル名に採用。 - ・TTL管理:JSON内に
fetched_atを保持し、取得時に有効期限を判定。 - ・堅牢な設計:ファイル破損時は例外を無視し、キャッシュミスとして扱う。
// Result
本実装により、API制限を気にせず、AIによるリクエスト浪費も抑えつつ開発が可能となった。
- ・開発体験の向上:API BANの懸念やAIの挙動に対する不安を解消。
- ・低コストな導入:依存関係なしで、既存プロジェクトへ即座に組み込み可能。
- ・拡張性の確保:データ増大時にはSQLite等へ移行する方針を明確化。
Senior Engineer Insight
> 本実装は「適材適所」の観点から極めて合理的である。大規模システムでは並行書き込みやクリーンアップが問題となる。しかし、個人開発では依存関係を増やさない価値が勝る。ただし、並行処理への非対応は実戦投入前に認識すべき制約である。