Caching¶
cocapi includes a built-in TTL-based in-memory response cache.
Configuration¶
from cocapi import CocApi, ApiConfig
config = ApiConfig(
enable_caching=True, # Default: True
cache_ttl=600, # Seconds (default: 300 = 5 minutes)
)
api = CocApi("token", config=config)
How It Works¶
- Before each request, the cache is checked using the URL + query params as key
- If a valid (non-expired) entry exists, it's returned without making an HTTP request
- Successful responses are stored in the cache with the configured TTL
- Expired entries are cleaned up automatically
Cache Stats¶
stats = api.get_cache_stats()
print(stats)
# {
# "enabled": True,
# "size": 42,
# "hits": 156,
# "misses": 87,
# "hit_rate": 0.642,
# ...
# }
Clearing the Cache¶
cleared = api.clear_cache()
print(f"Cleared {cleared} entries")
When to Disable Caching¶
-
Event polling — Disable caching so polls always return fresh data:
config = ApiConfig(enable_caching=False) -
Time-sensitive data — When you need real-time accuracy (live war attacks, etc.)
-
Low-memory environments — The cache stores full response dicts in memory