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.
Metadata
Release files for fastapi-cache 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastapi-cache-0.1.0.tar.gz | 4.8 kB | Details |
Release files / fastapi-cache-0.1.0.tar.gz
| Download URL | fastapi-cache-0.1.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f57e6e666672c84e3dd5d4141ec808d5339d158e10c87a87eb9ce11ff8b1735
|
|
BLAKE2b-256 checksum How to use checksums |
4df80cbd6a6ac2309bedff4f98a345d9629953afdf0dc25f7b2f2218384d881f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|