add cache-control to response after setting the cache

This commit is contained in:
Tobias Schmocker
2022-02-04 16:37:18 +01:00
parent 81d2bf2cc6
commit 1795c048d1

View File

@@ -47,7 +47,7 @@ def cache(
if ret is not None:
return coder.decode(ret)
ret = await func(*args, **kwargs)
await backend.set(cache_key, coder.encode(ret), expire or FastAPICache.get_expire())
await backend.set(cache_key, coder.encode(ret), expire)
return ret
if request.method != "GET":
@@ -64,7 +64,11 @@ def cache(
return coder.decode(ret)
ret = await func(*args, **kwargs)
await backend.set(cache_key, coder.encode(ret), expire or FastAPICache.get_expire())
encoded_ret = coder.encode(ret)
await backend.set(cache_key, encoded_ret, expire)
response.headers["Cache-Control"] = f"private, max-age={expire}"
etag = f"W/{hash(encoded_ret)}"
response.headers["ETag"] = etag
return ret
return inner