FastAPI simple cache
Project description
FastAPI Cache
Implements simple lightweight cache system as dependencies in FastAPI.
Installation
pip install fastapi-cache
Usage example
from fastapi import Depends, FastAPI
from fastapi_cache import caches, close_caches
from fastapi_cache.backends.redis import CACHE_KEY, RedisCacheBackend
app = FastAPI()
def redis_cache():
return caches.get(CACHE_KEY)
@app.get('/')
async def hello(
cache: RedisCacheBackend = Depends(redis_cache)
):
in_cache = await cache.get('some_cached_key')
if not in_cache:
await cache.set('some_cached_key', 'new_value', 5)
return {'response': in_cache or 'default'}
@app.on_event('startup')
async def on_startup() -> None:
rc = RedisCacheBackend('redis://redis')
caches.set(CACHE_KEY, rc)
@app.on_event('shutdown')
async def on_shutdown() -> None:
await close_caches()
TODO
- Add tests
-
Add registry decorator - Add dependency for requests caching
Acknowledgments
Changelog
- 0.0.6 Added typings for backends. Specific arguments now need to be passed through **kwargs. Set default encoding to utf-8 for redis backend, removed default TTL for redis keys.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fastapi-cache-0.1.0.tar.gz
(4.8 kB
view details)
File details
Details for the file fastapi-cache-0.1.0.tar.gz
.
File metadata
- Download URL: fastapi-cache-0.1.0.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f57e6e666672c84e3dd5d4141ec808d5339d158e10c87a87eb9ce11ff8b1735 |
|
MD5 | ea8260fbcd2ec22aaf1f572f0f01b8d5 |
|
BLAKE2b-256 | 4df80cbd6a6ac2309bedff4f98a345d9629953afdf0dc25f7b2f2218384d881f |