No project description provided
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.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9238db84dcfe58b0f8c24fc5ee8fa023e4b4f7cccf1059aedd49a87c7386ab40 |
|
MD5 | 57fd162017336b8b990df962582a2c2a |
|
BLAKE2b-256 | d23d8b54fe0c69b1b4be77ff1bba8acdf2805e93e394505b3894c3c72483c581 |