A simple tool for caching fastapi response
Project description
Fastapi easy cache
An easy to use tool for caching fastapi returnings using sqlite as backend
When should I use fastapi-easy-cache?
- Returning json serializable data
- Using GET method
- Returning dynamic but repeated data (like data refresh everyday)
- Don't have complicated requirements and too lazy to build a tool yourself
When should I NOT use fastapi-easy-cache?
- Returning not json serializable data (bytes, datetime, etc)
- Using POST method
- Returning frequently changing data (like data refresh every second)
- Need advanced features (recommend: fastapi-cache)
Installation
We recommend you have fastapi installed
pip install fastapi-easy-cache
Usage
Initializing
The following code will
- create a sqlite database in dbPath
- sotore cache in filesystem
import fastapi_easy_cache
fastapi_easy_cache.apiCache(db_path='./temp/cache', in_memory=False)
args
db_path: path to sqlite database in_memory: set up cache in memory, db_path will be database name when set to True
Using
You just need to add @cache(expire=20)
under fastapi route decorator, add flil in expire time and it's all done.
expire
is counted in second
from fastapi_easy_cache import cache
@app.get('/testCache/{path}')
@cache(expire=20)
def test(path):
data = path
return data
With GET route with arguments, you must add request: Request to your function
from starlette.requests import Request
from fastapi_easy_cache import cache
@app.get('/testCacheWithArg/{path}')
@cache(expire=20)
def testArg(path, arg1, arg2, request: Request):
data = {'path': path,
'arg1': arg1,
'arg2': arg2}
return data
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for fastapi_easy_cache-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dff6b15ebe1aecb33192cd02e29136aa98b7cb970a6fccceb93504e4fd1e4dff |
|
MD5 | c5c6bb1a7a986bdd8d650dcd4d233e14 |
|
BLAKE2b-256 | d555067b97d36c38a84c1f28159eab97e8ca44160eaad411d14a2472e18978c9 |