mirror of
https://github.com/long2ice/fastapi-cache.git
synced 2026-03-24 20:47:54 +00:00
feat: make request and response optional
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
from datetime import date, datetime
|
||||
|
||||
import pendulum
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
from starlette.requests import Request
|
||||
@@ -22,8 +21,8 @@ async def get_ret():
|
||||
|
||||
|
||||
@app.get("/")
|
||||
@cache(namespace="test", expire=20)
|
||||
async def index(request: Request, response: Response):
|
||||
@cache(namespace="test", expire=10)
|
||||
async def index():
|
||||
return dict(ret=await get_ret())
|
||||
|
||||
|
||||
@@ -33,15 +32,15 @@ async def clear():
|
||||
|
||||
|
||||
@app.get("/date")
|
||||
@cache(namespace="test", expire=20)
|
||||
async def get_data(request: Request, response: Response):
|
||||
return date.today()
|
||||
@cache(namespace="test", expire=10)
|
||||
async def get_data():
|
||||
return pendulum.today()
|
||||
|
||||
|
||||
@app.get("/datetime")
|
||||
@cache(namespace="test", expire=20)
|
||||
@cache(namespace="test", expire=2)
|
||||
async def get_datetime(request: Request, response: Response):
|
||||
return datetime.now()
|
||||
return {"now": pendulum.now()}
|
||||
|
||||
|
||||
@app.on_event("startup")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from datetime import date, datetime
|
||||
import time
|
||||
|
||||
import pendulum
|
||||
import redis.asyncio as redis
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
@@ -25,8 +25,8 @@ async def get_ret():
|
||||
|
||||
|
||||
@app.get("/")
|
||||
@cache(namespace="test", expire=20)
|
||||
async def index(request: Request, response: Response):
|
||||
@cache(namespace="test", expire=10)
|
||||
async def index():
|
||||
return dict(ret=await get_ret())
|
||||
|
||||
|
||||
@@ -36,27 +36,28 @@ async def clear():
|
||||
|
||||
|
||||
@app.get("/date")
|
||||
@cache(namespace="test", expire=20)
|
||||
@cache(namespace="test", expire=10)
|
||||
async def get_data(request: Request, response: Response):
|
||||
return date.today()
|
||||
return pendulum.today()
|
||||
|
||||
|
||||
@app.get("/blocking")
|
||||
@cache(namespace="test", expire=20)
|
||||
def blocking(request: Request, response: Response):
|
||||
@cache(namespace="test", expire=10)
|
||||
def blocking():
|
||||
time.sleep(5)
|
||||
return dict(ret=get_ret())
|
||||
|
||||
|
||||
@app.get("/datetime")
|
||||
@cache(namespace="test", expire=20)
|
||||
@cache(namespace="test", expire=2)
|
||||
async def get_datetime(request: Request, response: Response):
|
||||
return datetime.now()
|
||||
print(request, response)
|
||||
return pendulum.now()
|
||||
|
||||
|
||||
@app.on_event("startup")
|
||||
async def startup():
|
||||
pool = ConnectionPool.from_url(url="redis://localhost")
|
||||
pool = ConnectionPool.from_url(url="redis://redis")
|
||||
r = redis.Redis(connection_pool=pool)
|
||||
FastAPICache.init(RedisBackend(r), prefix="fastapi-cache")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user