Comments (3)
FastAPI endpoints are created by decorating a function with a path operation that specifies the HTTP method that the endpoint responds to (@app.get("/new_order")
in the code below).
The @cache
decorator must be the first decorator applied to the GetNewOrder
function, with the path operation decorator applied on top of @cache
. If you decorate a function with @cache
but do not apply the path operation decorator than no caching behavior will be performed.
@app.get("/new_order")
@cache()
def GetNewOrder(request: Request):
...
return Response(status_code = resp.status_code, content = resp.content, headers = cleanupRespHeaders(resp.headers))
Let me know if this fixes things for you!
from fastapi-redis-cache.
Thanks for the quick response! Sorry I left the @app.get(/orders/new)
decorator out of my initial post, but I did have that there during my initial tests. Just for a little more context, here's the setup portion of my code:
from fastapi_redis_cache import FastApiRedisCache, cache
app = FastAPI()
LOCAL_REDIS_URL = "redis://:[email protected]:6379"
@app.on_event("startup")
def startup():
redis_cache = FastApiRedisCache()
redis_cache.init(
host_url = os.environ.get("REDIS_URL", LOCAL_REDIS_URL),
prefix="multitenant_cache",
response_header = "x-multitenant-cache"
)
One other thought is that I'm making at least one internal API call for each route, so there's at least one extra request and response object in each call (although I am using the requests module for these calls, not FastAPI). Could that disrupt the decorator in any way, or does the decorator only pick up the FastAPI response that my route actually returns?
from fastapi-redis-cache.
This issue seems similar to my new issue: #58
from fastapi-redis-cache.
Related Issues (20)
- eTag generation should be optional and configured via a global setting AND a setting per-endpoint
- cache-control: no-cache behavior is wrong HOT 1
- user can add must-revalidate directive to responses
- add support for if-modified-since directive
- ttl expired -> request contains eTag/last-mod -> current behavior is wrong
- feature: provide method on `FastApiRedisCache` object that allows user to delete single cache items by key HOT 1
- Object of type <class '...'> is not JSON-serializable HOT 3
- Nothing being cached HOT 2
- coroutine '<method that is cached>' was never awaited HOT 1
- Use cache() decorator outside of fastapi HOT 3
- handling dirty cache entries HOT 1
- How can I cache POST requests? HOT 4
- [Question] How to manually expire an entry ? HOT 1
- Add support for authentication to a remote redis HOT 2
- Feature request - async Redis client
- "Too much data for declared Content-Length" error when activating caching HOT 5
- Can't Cache List of serialized data HOT 1
- add async support for redis HOT 1
- @cache Decorator Not Working
- A Rebuild Maybe ?! ....
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastapi-redis-cache.