diff --git a/fastapi_cache/coder.py b/fastapi_cache/coder.py index b6cd683..7dd5dfe 100644 --- a/fastapi_cache/coder.py +++ b/fastapi_cache/coder.py @@ -6,6 +6,7 @@ from typing import Any, Dict, Union import pendulum from fastapi.encoders import jsonable_encoder +from starlette.responses import JSONResponse from starlette.templating import _TemplateResponse as TemplateResponse CONVERTERS = { @@ -51,6 +52,8 @@ class Coder: class JsonCoder(Coder): @classmethod def encode(cls, value: Any) -> str: + if isinstance(value, JSONResponse): + return value.body return json.dumps(value, cls=JsonEncoder) @classmethod