feat: support cache JSONResponse

This commit is contained in:
vvanglro
2022-11-04 17:31:37 +08:00
parent a8fbf2b340
commit 4cb4afeff0

View File

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